home *** CD-ROM | disk | FTP | other *** search
/ A.C.E. 3 / ACE CD 3.iso / files / docs / real3ddo.lha / Real3DPart1.doc < prev    next >
Encoding:
Text File  |  1994-11-27  |  148.3 KB  |  4,162 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                         NOTE: README.
  7.  
  8.          DUE TO THE FACT THAT THE IFF FILES THAT WAS WITH THE 
  9.          ORIGANAL RELEASE BY DUAL CREW SHINING CAME TO A TOTAL
  10.          OF 3MEG+ CRUNCHED. SO IN ORDER TO DISPLAY ALL FILES
  11.          I WOULD HAVE HAD TO RELEASE A 4 DISK LSD DOCS DISK.
  12.          THEREFORE I HAVE OMITTED THE IFF GRAPHIC IN ORDER TO 
  13.          RELEASE THE REAL 3D V2.0 FULL DOCS ONTO ONE DISK.....
  14.               HOWEVER, IF YOU ARE INTERESTED IN HAVING THE FULL
  15.          3MEGS+ OF IFF GRAPHICS, LEAVE MAIL FOR CYGNUS ON 
  16.          DIABOLICAL SABOTAGE.
  17.               THANX TO DIRTYBRUSH FOR DOING A GREAT JOB ON THE
  18.          REAL 3D V2.0 DOCS...
  19.                                  CYGNUS
  20.  
  21.  
  22.  
  23.  
  24.  
  25.                           REAL 3D V2 - FULL DOCS
  26.                           ----------------------
  27.  
  28.           By: DIRTYBUSH (aka: SNUSKIS) of DUAL CREW SHINING (DCS)
  29.           -------------------------------------------------------
  30.  
  31.                 PART 1
  32.  
  33.  
  34. CONTENTS
  35. INTRODUCTION
  36.  
  37. Chapter 1 FEATURES OF REAL 3D V.2
  38.  
  39. Chapter 2 INSTALLATION
  40.  
  41. 2.1 HARDWARE REQUIREMENTS
  42.  
  43. 2.2 INSTALLING THE SYSTEM
  44.  
  45. Chapter 3 USING THE MANUAL
  46.  
  47. 3.1 WELCOME TO THE WORLD OF REAL 3D V.2
  48.  
  49. 3.2 SUGGESTED METHOD OF READING
  50.  
  51.      3 2.1 All Users
  52.      3.2.2 As a New User
  53.      3.2.3 As a User with Previous 3D Graphics Experience
  54.      3 2.4 Real-1.X User
  55.  
  56. 3.3 MAJOR DEVELOPMENTS SINCE v1.42
  57.  
  58.      3 3.1 System Integration & Configurable Interface
  59.      3.3.2 Multi.Selection Support
  60.          3.3.2.1 Multi-selecting Objects
  61.          3.3.2.2 Multi-selecting Functions
  62.      3.3.3 Hierarchy
  63.          3 3.3.1 Animation System
  64.          3.3.3.2 Materials
  65.          3.3.3.3 Boolean Operations
  66.          3.3.3.4 Hierarchy References and Order
  67.      3.3.4 Freeform Curves and Surfaces
  68.      3.3.5 Built in Programming Language
  69.  
  70. Chapter 4 GETTING STARTED
  71.  
  72. 4.1 OPENING THE PROGRAM
  73.  
  74.      4.2 FAMILIARIZE YOURSELF WITH THE MENUS & TOOLS
  75.      4.2 1 Menus
  76.      4 2.2 Tool Icons
  77.      4.2.3 Hot keys
  78.      4.2.4 Conclusion
  79.  
  80.                              - CONTENTS 1.1 -
  81.  
  82. 4.3 INTRODUCTION PROJECT
  83.  
  84.      4.3.1 Loading the Project
  85.      4.3.2 Refreshing and Rendering
  86.      4.3.3 Animating
  87.          4.3.3.1 "Jump To/Play To" and the Time Slider
  88.          4.3.3.2 "Wireframe/Ray Trace" Gadget
  89.      4.3.4 Rendering Revisited
  90.  
  91. 4.4 END OF THE BEGINNING
  92.  
  93. TUTORIAL
  94. --------
  95.  
  96. Chapter 1 OBJECT CREATION & MODIFICATION
  97.  
  98.  
  99. 1.1 STARTING THE PROGRAM
  100. 1.2 THE WINDOWS
  101. 1.3 THE MOUSE
  102. 1.4 BASIC TERMINOLOGY
  103. 1.5 TUTORIAL EXAMPLE 1:
  104.     SELECT WINDOWS AND HIERARCHY
  105.  
  106.      1.5.1 The Current Level
  107.      1.5.2 Object Multiselection
  108.  
  109. 1.6 TUTORIAL EXAMPLE 2: 3D MODELLING
  110. 1.7 MODIFYING
  111. 1.8 SAVING AND LOADING
  112. 1.9 VISIBLES
  113.  
  114.      1.9.1 Polygon/Polyhedron/Polymids
  115.      1.9.2 Sector Visibles
  116.  
  117. 1.10 COMPOUND TOOLS
  118.  
  119.      1.10.1 Lathe
  120.      1.10.2 Tube tools
  121.      1.10.3 Rounded Polygons and Polyhedrons
  122.      1.10.4 Object-Pixel Tool
  123.  
  124.                              - CONTENTS 1.2 -
  125.  
  126. 1.11 LIGHTSOURCES
  127.  
  128.      1.11.1 The Brightness of Light Sources
  129.  
  130. 1.12 MACROS
  131.  
  132. Chapter 2 THE ENVIRONMENT
  133.  
  134. 2.1 ASYNCHRONOUS ACTION
  135.  
  136. 2.2 SCREENS
  137.  
  138. 2.3 VIEW WINDOWS
  139.  
  140.      2.3.1 Projection Types
  141.      2.3.2 Input&Output Planes
  142.      2.3.3 View Coordinates & Cameras
  143.      2.3.4 booming and Positioning the View
  144.  
  145. 2.4 WIREFRAME DRAWING SPEED
  146.  
  147.      2.4.1 Bounding Boxes
  148.      2.4.2 Refresh Modes
  149.      2.4.3 The Visible Range of the Objects
  150.      2.4.4 Other Methods
  151.  
  152. 2.5 THE MEASURING WINDOW
  153.  
  154. 2.6 GRIDS
  155.  
  156. 2.7 THE UNDO FUNCTION
  157.  
  158.      2.7.1 Undo and Memory Management
  159.  
  160. 2.8 VECTOR STACK
  161.  
  162. Chapter 3 MATERIALS
  163.  
  164. 3.1 USING MATERIALS
  165.  
  166.      3.1.1 General Information
  167.      3.1.2 Tutorial Project
  168.      3.1.3 Optical Properties
  169.  
  170.                              - CONTENTS 1.3 -
  171.  
  172. 3.2 TEXTURE MAPPING
  173.  
  174.      3.2.1 General Information
  175.      3.2.2 Textures
  176.      3.2.3 Texture Mapped Materials
  177.      3.2.4 Mappings
  178.      3.2.5 Sector Mappings
  179.      3.2.6 Spline Mapping
  180.      3.2.7 Index Format String
  181.      3.2.8 Animated Textures
  182.  
  183. 3.3 ADVANCED MATERIAL FEATURES
  184.  
  185.      3.3.1 Multiple Materials
  186.      3.3.2 Procedural Handlers
  187.      3.3.3 Nonhomogeneous Materials
  188.      3.3.4 Mappings and Hierarchy
  189.      3.3.5 Some Material Morphing Examples
  190.  
  191. Chapter 4 MODELING
  192.  
  193. 4.1 FREEFORM MODELLING AND POINT EDITING
  194.  
  195.      4.1.1 Curves
  196.          4.1.1.1 Special Curve Shapes
  197.          4.1.1.2 Multiple Control Points
  198.      4.1.2 Selecting Points
  199.      4.1.3 Freeforms as Levels
  200.      4.1.4 Freeform Surfaces
  201.          4.1.4.1 Example: Creating a Simple Mesh
  202.          4.1.4.2 Coplanar Sweeping
  203.          4.1.4.3 Orthogonal Sweeping
  204.          4.1.4.4 Rotate - Creating a Wine Glass
  205.          4.1.4.5 Swinging
  206.          4.1.4.6 Cross-sectional Surface Construction
  207.          4.1.4.7 Mesh-Pixel Tool
  208.      4.1.5 Modifying Curves and Meshes
  209.      4.1.6 Bending Functions
  210.      4.1.7 Example: Creating a B-Spline Head
  211.  
  212. 4.2 BOOLEAN OPERATIONS
  213.  
  214.      4.2.1 Wireframes of Booleans
  215.  
  216. 4.3 OBJECT ATTRIBUTES
  217.  
  218.      4.3.1 Infinite Primitives
  219.  
  220.                              - CONTENTS 1.4 -
  221.  
  222. 4.4 SPECIAL FUNCTIONS
  223.  
  224.      4.4.1 Use of Animation Methods for Creation
  225.      4.4.2 COG Modifications
  226.  
  227.  
  228. Chapter 5 RENDERING
  229.  
  230. 5.1 LIGHTING SETTINGS
  231. 5.2 COLOR/IMAGE SETTINGS
  232. 5.3 RENDERING QUALITY SETTINGS
  233. 5.4 RAY TRACING QUALITY SETTINGS
  234. 5.5 RENDERING MODES
  235. 5.6 DITHERING
  236. 5.7 SPECIAL SETTINGS
  237. 5.8 HIERARCHY AND RENDERING
  238. 5.9 RENDERING A WIREFRAME PREVIEW OF AN ANIMATION
  239. 5.10 RENDERING AN ANIMATION
  240. 5.11 RENDERING TO A FILE
  241. 5.12 CONTINUING A CANCELLED RENDERING PROCESS
  242. 5.13 RENDERING TO AN EXTERNAL SCREEN
  243.  
  244.      5.13.1 Rendering an Animation Using External Screen
  245.      5.13.2 External Screen Aspect Ratio
  246.      5.13.3 Other Information
  247.  
  248. 5.14 BOXES
  249. 5.15 OBJECT ATTRIBUTES AND RENDERING
  250.  
  251.      5.15.1 Scene gadget
  252.      5.15.2 Backdrop and Matte Objects
  253.  
  254.                              - CONTENTS 1.5 -
  255.  
  256. 5.16 OPTIMIZATIONS
  257.  
  258.      5.16.1 Rendering Mode
  259.      5.16.2 Resolution
  260.      5.16.3 Recursion
  261.      5.16.4 Re-interpreting B-splines
  262.      5.16.5 Reflections & Not Reflected.
  263.      5.16.6 Shadows
  264.      5.16.7 Other Optimizations
  265.  
  266. 5.17 USING ALPHA CHANNEL
  267. 5.18 RENDERING FIELDS
  268. 5.19 MOTION BLUR
  269. 5.20 TROUBLESHOOTING
  270.  
  271.      5.20.1 Not Enough Memory
  272.      5.20.2 Disappearing objects
  273.  
  274. Chapter 6 ANIMATION
  275.  
  276. 6.1 PATH
  277.  
  278.      6.1.1 Move Object along a Path
  279.      6.1.2 Move Objects along a Path Like a Snake
  280.      6.1.3 Bouncing Sphere
  281.      6.1.4 Hierarchical Animations and Bouncing Sphere
  282.      6.1.5 Move Elastic B-Spline Mesh along a Path
  283.      6.1.6 Talking Head
  284.      6.1.7 Moving Objects along a B-Spline Mesh
  285.      6.1.8 Customized Paths
  286.  
  287. 6.2 ROTATION
  288.  
  289.      6.2.1 Rotating Objects Around an Axis
  290.      6.2.2 Rotating with Different Speeds and Directions
  291.      6.2.3 Hierarchical Rotations
  292.      6.2.4 Tornado
  293.  
  294. 6.3 SWEEP
  295.  
  296.      6.3.1 Walking Legs
  297.      6.3.2 Tracking Guns
  298.  
  299.                              - CONTENTS 1.6 -
  300.  
  301. 6.4 SIZE
  302.  
  303.      6.4.1 Beating Spheres
  304.      6.4.2 Bubbles
  305.  
  306. 6.5 STRETCH
  307.  
  308.      6.5.1 Elastic Cube
  309.      6.5.2 Bouncing Elastic Sphere
  310.  
  311. 6.6 DIRECTION
  312.  
  313.      6.6.1 Move a Logo Text along a Direction Path
  314.      6.6.2 Swimming Fish
  315.  
  316. 6.7 MOVE&DIR
  317.  
  318.      6.7.1 Rocking Logo Moving along a Straight Line
  319.      6.7.2 The Rally Driver
  320.  
  321. 6.8 CONTROL CURVES
  322.  
  323.      6.8.1 Beating and Moving Slime Ball
  324.      6.8.2 Elastic Flying Carpet
  325.      6.8.3 Flying Viewpoint
  326.  
  327. 6.9 SIMPLE SKELETON
  328.  
  329.      6.9.1 A SIMPLE SKELETON and a Logo Text
  330.      6.9.2 Rotate a Simple Skeleton around an Axis
  331.      6.9.3 Elastic Skeleton and Logo Text
  332.      6.9.4 Moving Objects along a Skeleton
  333.      6.9.5 Rocking Spheres
  334.      6.9.6 A Hydrogen Atom and its Electron Orbit
  335.  
  336. 6.10 SKELETON
  337.  
  338.      6.10.1 Another Logo Text Animation
  339.      6.10.2 Rotating Skin around Bones
  340.  
  341. 6.11 INVERSE KINEMATICS
  342.  
  343.      6.11.1 Curl a Finger
  344.      6.11.2 Push a Button with the Finger-tip
  345.      6.11.3 Interactively Controlled Hierarchical Skeletons
  346.      6.11.4 An Animated Robot Arm
  347.  
  348.                              - CONTENTS 1.7 -
  349.  
  350. 6.12 MORPHING
  351.  
  352.      6.12.1 Second Talking Head
  353.      6.12.2 Singing Heads
  354.      6.12.3 Sing the Same Song Ten Times
  355.      6.12.4 Morphing Hierarchical Objects
  356.      6.12.5 Morphing Texture Maps and Materials
  357.      6.12.6 Camera Flight Animation
  358.  
  359. 6.13 TRANSFORM
  360.  
  361.      6.13.1 Piston
  362.      6.13.2 Hesitating Piston
  363.      6.13.3 Three Dimensional Time
  364.  
  365. 6.14 RADIAL FORCE
  366.  
  367.      6.14.1 Gravity
  368.      6.14.2 The Simplest Possible Particle Animation
  369.      6.14.3 Customized Radial Force
  370.  
  371. 6.15 DIRECTED FORCE
  372.  
  373.      6.15.1 Turbulence
  374.      6.15.2 Snow in the Wind
  375.  
  376. 6.16 TANGENT FORCE
  377.  
  378.      6.16.1 Centrifugal Force
  379.  
  380. 6.17 INTERACTIVE COLLISION DETECTION
  381.  
  382.      6.17.1 Colliding Spheres
  383.      6.17.2 Multiple Collisions
  384.      6.17.3 Bowling Alley
  385.      6.17.4 Drop a Ball to a Tube
  386.      6.17.5 A Rolling Ball
  387.  
  388. 6.18 NON-INTERACTIVE COLLISION DETECTION
  389.  
  390.      6.18.1 A Planet and Meteorites
  391.  
  392. 6.19 FRICTION
  393.  
  394.      6.19.1 Friction and Spheres with Different Sizes
  395.      6.19.2 Customized Friction
  396.  
  397.                              - CONTENTS 1.8 -
  398.  
  399. 6.20 CREATION
  400.  
  401.      6.20.1 A Sphere Tube
  402.      6.20.2 Boiling Water
  403.      6.20.3 A Wriggling Snake
  404.  
  405. 6.21 PROCESSOR
  406.  
  407. 6.22 RPL
  408.  
  409.      6.22.1 An Easy Way to Write a RPL Procedure
  410.  
  411. 6.23 WAVE
  412.  
  413.      6.23.1 Waving Sea
  414.      6.23.2 A Water Drop
  415.      6.23.3 Parallel Waves
  416.      6.23.4 Waves and Ripples
  417.      6.23.5 Waving Particles
  418.  
  419. Chapter 7 RPL
  420.  
  421. 7.1 INTRODUCTION
  422.  
  423.      7.1.1 Basic Concepts
  424.  
  425. 7.2 TUTORIAL
  426.  
  427.      7.2.1 Getting Started
  428.      7.2.2 Stacks
  429.      7.2.3 Reverse Polish Notation
  430.      7.2.4 Parameter Stack
  431.      7.2.5 Data Types
  432.          7.2.5.1 Integers
  433.          7.2.5.2 Floating-points
  434.          7.2.5.3 Strings
  435.      7.2.6 Stack Manipulation Words
  436.      7.2.7 Compiling New Words
  437.      7.2.8 Constants and Variables
  438.      7.2.8.1 Constants
  439.      7.2.8.2 Variables
  440.  
  441.                              - CONTENTS 1.9 -
  442.  
  443.      7.2.9 Flow Control
  444.      7.2.10 Conditional Execution
  445.          7.2.10.1 Comparisons
  446.          7.2.10.2 IF.ENDIF Structure
  447.          7.2.10.3 IF.ELSE.ENDIF Structure
  448.          7.2.10.4 Inverting Flags
  449.          7.2.10.5 Nesting Conditionals
  450.      7.2.11 Loops
  451.          7.2.11.1 Definite Loops
  452.          7.2.11.2 Indefinite Loops
  453.          7.2.11.3 Nested Loops
  454.      7.2.12 Words and the Vocabulary
  455.      7.2.13 Loading a File
  456.      7.2.14 Using RPL Windows
  457.  
  458. 7.3 USING RPL FOR CUSTOMIZING EDITOR
  459.  
  460.      7.3.1 Communicating with RPL Programs
  461.      7.3.2 "Master" ENVIRONMENT
  462.      7.3.3 Binding Macros to Keys
  463.      7.3.4 Binding Macros to Icons
  464.  
  465. 7.4 CREATING ANIMATIONS USING RPL
  466.  
  467.      7.4.1 Modifying Objects Directly
  468.      7.4.2 Creating New Methods
  469.          7.4.2.1 Do Nothing Method
  470.          7.4.2.2 Move Absolutely Along a Path
  471.          7.4.2.3 Chain
  472.  
  473. 7.5 USING EVAL
  474.  
  475. 7.6 OBJECTS
  476.  
  477.      7.6.1 Object Creation
  478.      7.6.2 Object Instances
  479.      7.6.3 Grouping Objects Together
  480.      7.6.4 SphereMan
  481.  
  482.                              - CONTENTS 1.10 -
  483.  
  484. REFERENCE
  485.  
  486. Chapter 1 MENU FUNCTIONS
  487.  
  488. 1.1 PROJECT
  489. 1.2 CREATE
  490. 1.3 MODIFY
  491. 1.4 VIEW
  492. 1.5 ANIMATE
  493. 1.6 EXTRAS
  494. 1.7 SETTINGS
  495. 1.8 TOOLS
  496.  
  497. Chapter 2 ANIMATION METHOD SYNTAX
  498.  
  499. 2.1 PRINCIPLES
  500.  
  501.      2.1.1 General Information
  502.      2.1.2 Built-in Methods
  503.      2.1.3 User Defined Methods
  504.      2.1.4 Evaluating Parameters
  505.      2.1.5 Animation Oriented Tags
  506.      2.1.6 Particle System Principles
  507.          2.1.6.1 Converting Motion Properties into Real Motion
  508.          2.1.6.2 Forces in the Particle System
  509.          2.1.6.3 Real Time and Particle Motion
  510.          2.1.6.4 Side-effects of Particle Animations
  511.      2.1.7 Creating New Methods
  512.  
  513. 2.2 ANIMATION METHODS
  514.  
  515.      2.2.1 PATH
  516.      2.2.2 ROTATION
  517.      2.2.3 SWEEP
  518.      2.2.4 SIZE
  519.      2.2.5 STRETCH
  520.      2.2.6 DIRECTION
  521.      2.2.7 MOVE & DIR
  522.      2.2.8 CONTROL CURVES
  523.  
  524.                              - CONTENTS 1.11 -
  525.  
  526.      2.2.9 SIMPLE SKELETON
  527.      2.2.10 SKELETON
  528.      2.2.11 INV KINEMATIC
  529.      2.2.12 MORPHING OPEN & CLOSED
  530.      2.2.13 TRANSFORM
  531.      2.2.14 WAVE
  532.      2.2.15 RADIAL FORCE
  533.      2.2.16 DIRECTED FORCE
  534.      2.2.17 TANGENT FORCE
  535.      2.2.18 COLLISION
  536.      2.2.19 INT COLLISION
  537.      2.2.20 FRICTION
  538.      2.2.21 CREATION
  539.      2.2.22 PROCESSOR
  540.      2.2.23 RPL
  541.  
  542. Chapter 3 RPL SYNTAX
  543.  
  544. 3.1 KERNEL WORDS
  545. 3.2 OBJECT CREATION WORDS
  546.  
  547.      3.2.1 Geometry
  548.          3.2.1.1 fStAngle & fEnAngle
  549.          3.2.1.2 wGeomFlags
  550.          3.2.1.3 wFreeType
  551.      3.2.2 iColor
  552.      3.2.3 Attributes
  553.          3.2.3.1 Name
  554.          3.2.3.2 Object Flags
  555.      3.2.4 Tags
  556.      3.2.5 Return Value
  557.      3.2.6 Word Definitions
  558.  
  559. 3.3 MODIFICATION WORDS
  560.  
  561.      3.3.1 Modify Flags
  562.      3.3.2 Locking Object Data
  563.      3.3.3 Word Definitions
  564.  
  565. 3.4 OBJECT WORDS
  566.  
  567.      3.4.1 Return Value
  568.      3.4.2 Locking Data Structure
  569.      3.4.3 Word Definitions
  570.  
  571.                              - CONTENTS 1.12 -
  572.  
  573. 3.5 ANIMATION WORDS
  574. 3.6 I/O WORDS
  575. 3.7 MATERIAL WORDS
  576. 3.8 MISCELLANEOUS WORDS
  577. 3.9 USER INTERFACE WORDS
  578. 3.10 AREXXWORDS
  579. 3.11 VECTOR OPERATIONS
  580.  
  581. Chapter 4 GEOMETRIC OBJECT PROPERTIES
  582.  
  583.  
  584. 4.1 GEOMETRIC PROPERTIES
  585.  
  586.      4.1.1 Surface Definition
  587.      4.1.2 COG
  588.      4.1.3 Direction
  589.      4.1.4 Size
  590.  
  591. 4.2 DEFAULT GEOMETRIC PROPERTIES
  592.  
  593. Chapter 5 TAGS
  594.  
  595. 5.1 TAG IDENTIFIERS
  596. 5.2 RESERVED TAG IDENTIFIERS
  597.  
  598. Chapter 6 AREXX INTERFACE OF REAL 3D
  599.  
  600. 6.1 GENERAL
  601. 6.2 AREXX VS. RPL
  602. 6.3 SENDING AREXX COMMANDS TO THE PORT OF REAL 3D
  603. 6.4 RETURN VALUES
  604.  
  605.  
  606.                              - CONTENTS 1.13 -
  607.  
  608. 6.5 RESULT STRING
  609. 6.6 CLIP LIST
  610. 6.7 SENDING AREXX COMMANDS FROM REAL 3D
  611. 6.8 RETURN VALUES FROM OTHER APPLICATIONS
  612. 6.9 RESULT STRINGS FROM OTHER APPLICATIONS
  613.  
  614. APPENDICES
  615.  
  616. Appendix A PREDEFINED ICONS
  617.  
  618. Appendix B HOT KEYS AND MENUS
  619.  
  620. Appendix C UTILITY SOFTWARE
  621.  
  622. C.1 CONVERSION SOFTWARE
  623.  
  624.      C.1.1 RealConvert
  625.      C.1.2 DxfToRPL
  626.  
  627. C.2 IMAGE & ANIMATION DISPLAY
  628.  
  629.      C.2.1 Display
  630.      C.2.2 DeltaConvert
  631.      C.2.3 DeltaPlay
  632.  
  633. GLOSSARY
  634.  
  635. INDEX
  636.  
  637.                              - CONTENTS 1.14 -
  638.  
  639. INTRODUCTION
  640. ------------
  641.  
  642. Chapter 1 FEATURES OF REAL 3D V.2
  643. ---------------------------------
  644.  
  645.  
  646. Program Description
  647.  
  648. REAL 3D V.2 is a design and animation program for producing high quality
  649. realistic images of three-dimensional objects.
  650. 3D Desktop animators, creative computer artists, product designers,
  651. teachers and everyone interested in compiler generated imagery will find
  652. REAL 3D V.2 a very useful and unique tool.
  653. This new version introduces a large collection of state-of-art features,
  654. making REAL 3D V.2 one of the most powerful 3D packages available to
  655. desktop computer platforms.
  656.  
  657. Integrated Environment
  658.  
  659. The mode-less design principles of REAL 3D V.2 mean that the user can
  660. directly access most functions of the program simultaneously.
  661. F or example: it is possible to modify a material and immediately see how
  662. the modification affects the rendered image.
  663.  
  664. Configurable Environment Expendability
  665.  
  666. The REAL 3D user interface is fully configurable. You easily are able to
  667. design different working environments to meet requirements of different
  668. applications.
  669. For example: REAL 3D V.2 can be used as a single view editor, a tri-view
  670. editor or perhaps a 9-view editor. It is possible to expand the program
  671. by defining new functions and binding them to icons and keys.
  672.  
  673. Zero Wait State Design
  674.  
  675. The asynchronous software design, implemented using the latest techniques
  676. of object-oriented programming, takes extensive advantage of multi-tasking
  677. operating systems. In this way maximum convenience and productivity are
  678. achieved when modelling. The user never has to wait until some function
  679. has finished; instead, he can continue with new actions while old ones
  680. execute as background tasks.
  681.  
  682. Hierarchical Object-Oriented Construction of Objects
  683.  
  684. With REAL 3D V2, objects can be created with hierarchical structure. This
  685. means that the objects are made of sub-objects, and these sub-objects may
  686. have their own sub-structure and so on. This kind of tree structure is
  687. well known in the context of disk operating systems in which directories
  688. are created inside other directories.
  689. In REAL 3D the counterparts of these directories combine objects into
  690. logical groups. This approach makes, for example, object modifications
  691. extremely easy because it is possible to perform operations to each
  692. logical entity separately or collectively. When copying a DOS directory,
  693. it is not necessary to take care of the individual files and directories
  694. inside it. In the same manner , a complex object can be stretched in
  695. REAL 3D as easily as one part of it.
  696.  
  697. Ray Tracing
  698.  
  699. The ray tracing calculations of REAL 3D are strongly based on the optical
  700. properties of materials in the real world. REAL 3D produces images by
  701. simulating the laws of optics, and consequently they represent reality
  702. with astonishing accuracy.
  703.  
  704. Speed
  705.  
  706. Innovative methods and new ray tracing algorithms make REAL 3D extremely
  707. fast. Ray tracing in REAL 3D V.2 is so incredibly fast that it is usable
  708. as a primary re-drawing method instead of wire-frames during the
  709. interactive modelling process.
  710.  
  711.                            - INTRODUCTION 1.1 -
  712.  
  713. Rendering Techniques
  714.  
  715. As well as the ultra fast wire-frame refreshing, REAL 3D V.2 includes
  716. six different rendering techniques: hidden-line wire-frames, high speed
  717. basic surface rendering, simple ray tracing with non-interactive
  718. environment-mapped reflections, single light-source ray tracing,
  719. rendering without shadows, and full featured ray tracing.
  720.  
  721. Light-sources
  722.  
  723. it is possible to use an unlimited number of light-sources with any
  724. desired color and intensity. Smooth edged shadows can be produced using
  725. diffuse light-sources.
  726.  
  727. Anti-aliasing
  728.  
  729. REAL 3D V.2 includes adjustable anti-aliasing.
  730. There are 9 different degrees of anti-aliasing, from which the user can
  731. select a suitable level. The most accurate level uses 256 * 256 adaptive
  732. over-sampling, which is enough for any application!
  733.  
  734. Depth-of-Field
  735.  
  736. Using a highly optimized algorithm, depth-of-field can be used even for
  737. very complex scenes. There is no significant impact on rendering time.
  738.  
  739. Motion Blur
  740.  
  741. The Rendering Engine also supports a sophisticated motion blur evaluation
  742. system that can be applied to whole scenes or individual objects
  743. selectively. The use of adaptive over-sampling makes this evaluation
  744. faster than other software on equivalent platforms.
  745.  
  746. Draft rendering
  747.  
  748. For drafting purposes it is possible to render with low resolutions to
  749. produce images faster. Rectangular areas of an image can be individually
  750. selected and rendered with any desired techniques: resolution,
  751. anti-aliasing level, etc.
  752.  
  753. True Solid Modeling
  754.  
  755. REAL 3D V.2 includes CSG (Constructive Solid Geometry) modelling.
  756. Solid modelling is the most sophisticated way to represent three
  757. dimensional objects. For example, solid modelling offers general boolean
  758. operations and makes it possible to simulate optical devices, like lenses,
  759. correctly.
  760.  
  761. Mathematical Surfaces
  762.  
  763. In addition to polygonal surfaces, REAL 3D V.2 includes several curved
  764. surfaces such as: ellipsoids, cylinders, cones and hyperboloids.
  765. The surface descriptions of these surfaces are defined mathematically.
  766. This means that no matter how much a sphere created by REAL 3D V.2 is
  767. enlarged, no edges, corners, or other artifacts become visible on its
  768. surface. This makes the program much faster, and most importantly, the
  769. resultant images are of very high quality.
  770.  
  771. Boolean Operations
  772.  
  773. Using boolean operations between objects, you can for example, split an
  774. object into two pieces and move the pieces apart so that the inner
  775. structure of the object is revealed. Operations can alter the properties
  776. of the material of the target object using the properties of the tool.
  777. By using a shiny cylinder, a shiny hole can be drilled into a matt object.
  778. These operations are a powerful way to create and modify objects.
  779. When modelling technical objects these boolean operations are especially
  780. indispensable.
  781.  
  782.                            - INTRODUCTION 1.2 -
  783.  
  784. Compound Tools
  785.  
  786. Complex shapes constructed by automatically combining basic primitive
  787. objects.
  788.  
  789. Polygonal Surfaces
  790.  
  791. Conventional polygonal surfaces with optional Phong Shading are included.
  792.  
  793. B-spline Surfaces
  794.  
  795. Uniform cubic B-spline surfaces provide the user with a very powerful way
  796. of representing curved free-form surfaces and organic shapes.
  797. The quality of shaded B-spline surfaces is far superior to polygonal
  798. surfaces with Phong Shading.
  799.  
  800. Free-form Construction
  801.  
  802. A large collection of free-form surface construction functions are
  803. provided including: co-planar and orthogonal sweeps, rotation, cross-
  804. sectional building, etc.
  805.  
  806. Linear Modifications
  807.  
  808. All the necessary functions for modifying the basic shape and properties
  809. of objects are included.
  810.  
  811. Non-linear Transformations
  812.  
  813. Nearly one hundred non-linear transformations and bending functions are
  814. available for altering the shape of free-form surfaces.
  815.  
  816. Fractal Generators
  817.  
  818. Two fractal generators are included for constructing "landscapes" and
  819. "trees".
  820.  
  821. Material Properties
  822.  
  823. Using the hierarchical structure it is possible to construct objects
  824. from different materials having suitable physical properties. All material
  825. properties can be adjusted without any restrictions. Even the refractive
  826. index of light is freely adjustable so that it is possible to create
  827. optical devices from glass lenses. These devices act as their real-world
  828. counterparts: a magnifying glass in REAL 3D really magnifies!
  829.  
  830. Texture Mapping
  831.  
  832. The texture mapping properties of REAL 3D V.2 are not restricted to any
  833. fixed patterns. Any image file can be used to paint objects.
  834. Pictures created with any paint program, video digitizer, or scanner can
  835. all be used to color the surface of an object. For example, by digitizing
  836. a wood-grain pattern, it is easy to create wooden objects that look very
  837. realistic. In REAL 3D V.2 textures are treated as objects and are a part
  838. of the object hierarchy which means that textures can be modified and
  839. animated just as easily as any other object.
  840.  
  841. B-spline Mapping
  842.  
  843. Textures and images can be mapped over the surface of a B-spline mesh so
  844. that they exactly follow the curvature of the mesh object. The B-spline
  845. object can be modified or animated and its texture will move with it like
  846. a skin.
  847.  
  848. Procedural Textures
  849.  
  850. As well as using image files to define material properties, an unlimited
  851. number of mathematical handlers can be used. The user can write arbitrary
  852. formulas defining the color, bump-mapping, and other material properties.
  853. Many built in procedural handlers are included.
  854.  
  855.                            - INTRODUCTION 1.3 -
  856.  
  857. Multiple Textures
  858.  
  859. Objects can have multiple textures and materials. Furthermore, the
  860. materials can be faded and mixed.
  861.  
  862. Animation Support
  863.  
  864. The new version introduces a revolutionary animation system which extends
  865. the object-orientation principles to the process of defining the animation
  866. methods for each object. In the new animation system, the motion
  867. description is a natural part of the object structure. The built-in
  868. animation methods include such features as: basic motion and shape
  869. modification, morphing and skeletonal control using inverse kinematics.
  870.  
  871. Particle Animation
  872.  
  873. There is also one of the most powerful particle animation systems
  874. available integrated into the animation system. Using these animation
  875. methods objects are treated as particles that can have various physical
  876. properties like: velocity , spin, mass, and surface-friction.
  877. They can then be made to collide and interact just like objects in the
  878. real world.
  879.  
  880. Interactive Replay
  881.  
  882. REAL 3D also includes software for showing rendered animations
  883. interactively.
  884.  
  885. Macro Functions
  886.  
  887. it is possible to combine REAL 3D functions to form macros either by
  888. recording the mouse and keyboard actions, or by creating the descriptive
  889. text using the built in programming language. With macros the user can
  890. easily create complex symmetrical forms or produce animation effects.
  891. Macros can be saved, loaded, and bound to keys and icons.
  892.  
  893. RPL Language
  894.  
  895. REAL 3D contains a fully featured programming language called RPL.
  896. The language offers the most powerful interface to the software and can
  897. even be used for accessing operating system functions. RPL is used for:
  898.  
  899. - expanding the program features
  900. - macro recording
  901. - scene description and saving
  902. - particle and procedural animation methods
  903. - procedural material properties
  904.  
  905. Two formats are available: a binary and an ASCII format. The binary format
  906. offers efficient and fast way of storing a scene description, whereas the
  907. ASCII format, based on RPL programming language, is machine independent.
  908.  
  909. Tag Expansion
  910.  
  911. Object and material data structures can be expanded using tags. Tags are
  912. also used in particle animations where the tag data attached to an object
  913. can determine the behavior of the object.
  914.  
  915. AutoCAD Interface
  916.  
  917. REAL 3D supports importing AutoCAD DXF format.
  918.  
  919. Mattes and Background
  920.  
  921. The 3D images rendered by REAL 3D are easily integrated with digital
  922. backgrounds. By using other objects to act as "mattes", rendered objects
  923. can be made to "pass behind" parts of the background. When used correctly
  924. with the animation system these techniques allow direct combination of 3D
  925. graphics and "live" action.
  926.  
  927.                            - INTRODUCTION 1.4 -
  928.  
  929. Alpha channel
  930.  
  931. The REAL 3D Rendering Engine provides support for graphics hardware with
  932. an alpha-information channel. By using the alpha-channel as a video key,
  933. ray traced scenes can be combined with video without the need to digitize
  934. it in advance.
  935.  
  936. image Output
  937.  
  938. The protocol for output devices is well designed and flexible. This allows
  939. for graphics hardware manufacturers to easily write the software needed
  940. for using their hardware with REAL 3D.
  941.  
  942. Field Rendering
  943.  
  944. Rendering of separate fields is also supported by the software.
  945.  
  946. Chapter 2 INSTALLATION
  947. ----------------------
  948.  
  949. 2.1 HARDWARE REQUIREMENTS
  950.  
  951. REAL 3D V.2 has the following hardware requirements:
  952.  
  953. - At least 3 megabytes of RAM memory
  954. - A hard disk with at least 5 megabytes of free-space for the software
  955. - MC68020 (or higher, e.g. 68030/68040) processor
  956. - A math coprocessor
  957.  
  958. For professional users we recommend a configuration with at least 5
  959. megabytes of RAM memory and at least 10 megabytes of hard disk space
  960. reserved for the REAL 3D environment.
  961.  
  962. The special 68040 optimized program version has been tested to be up
  963. to 8 times faster in rendering than the 68030 version running equal
  964. clock frequency.
  965.  
  966. 2.2 INSTALLING THE SYSTEM
  967.  
  968. Before you use your REAL 3D disks, make working copies of the originals
  969. by using either Workbench-duplicate operation or some copying program.
  970. This guarantees that if a disk is corrupted accidentally, you will still
  971. have a good copy.
  972.  
  973. To use the software, you need a hard disk. To install the software to
  974. your hard disk, just double click the InstallHD-icon on the first program
  975. disk and follow the instructions. For successful installation, there must
  976. be at least five megabytes of free hard disk space.
  977.  
  978. After installation, remember to add "assign R3D2: Partition:R3D2" command
  979. to your startup-sequence (preferably to the s:user-startup file), where
  980. "Partition" refers to the hard disk partition you chose.
  981.  
  982. For your convenience, REAL 3D maintains information of the DOS directories
  983. that contain the data structures created with the program, for example:
  984. project, material, and object structures. The default directories are the
  985. directories found in the software package.
  986. You can change them by using Settings/Paths function and then by using
  987. Project/Environment/Save function , save the working environment as
  988. "s:real-startup". The directory paths are included in the project file,
  989. and when you next run the program and try to load some data, the relevant
  990. directory is immediately displayed (if it still exists).
  991.  
  992. The automatic installation procedure creates a directory under which it
  993. copies the contents of the program disks. Furthermore, it adds two files
  994. to the s: directory, real-startup and RPL-startup. Real-startup is a
  995. project file, containing the default user interface. RPL-startup contains
  996. the initial RPL definitions of which the most important are the default
  997. keyboard binding definitions or Hot-Keys.
  998.  
  999.                            - INTRODUCTION 1.5 -
  1000.  
  1001. Chapter 3 USING THE MANUAL
  1002. --------------------------
  1003.  
  1004. 3.1 welcome to the world of REAL 3D V.2
  1005.  
  1006. REAL 3D V.2 is an extremely powerful tool for creating realistic computer
  1007. graphics images and animations. Once you have grasped a few basic
  1008. principles you will find it very interesting to use. This manual is
  1009. designed to gently take you through the learning process. Very soon you
  1010. will be creating some very cool images and animations that previously
  1011. you didn't think possible on a desktop 3D platform.
  1012.  
  1013. 3.2 Suggested Method of Reading
  1014.  
  1015. 3.2.1 All Users
  1016.  
  1017. The manual contains six different sections:
  1018.  
  1019. INTRODUCTION - Introduces you to the program and gets you started.
  1020.  
  1021. TUTORIAL - Takes you through all the functions in easy steps with lots of
  1022.            examples. There are also text and files in the "Examples"
  1023.            directory to help.
  1024.  
  1025. REFERENCE - This contains concise descriptions for the menu functions and
  1026.             for each gadget on all the requesters.
  1027.  
  1028. GLOSSARY - REAL 3D V.2 uses a number of special terms and phrases to
  1029.            describe the items you create and how certain functions
  1030.            operate. These are all defined in this section.
  1031.  
  1032. APPENDICES - All the miscellaneous information: diagrams of icons,
  1033.              descriptions of hot-keys, and using the support software
  1034.              is contained in this section.
  1035.  
  1036. INDEX - A full index.
  1037.  
  1038. In Chapter 4, "Getting Started", there is a special project for you to
  1039. load with instructions to follow so that you can experiment and get a
  1040. quick taste of the power of REAL 3D V.2.
  1041.  
  1042. 3.2.2 As a New User
  1043.  
  1044. If this is the first time you have ever used a 3D graphics program then
  1045. using REAL 3D will be a real experience! You should go straight to
  1046. Chapter 4 and follow the instructions carefully. Take your time, be
  1047. patient, the whole world of Virtual Reality and Computer Generated
  1048. Images & Animations lies before you...
  1049.  
  1050. You should now go to Chapter 4 "Getting Started".
  1051.  
  1052. 3.2.3 As a User with Previous 3D Graphics Experience
  1053.  
  1054. If you have used 3D graphics packages before, but never any of the
  1055. previous versions of REAL 3D then you should pay special attention to the
  1056. Tutorial. REAL 3D is on the cutting-edge of 3D graphics software, and
  1057. contains many new ideas and principles which make it probably the most
  1058. powerful computer graphics development tool available on ANY platform.
  1059. It is quite different from other packages; but in this difference lies
  1060. its power.
  1061.  
  1062. REAL 3D V.2 gives you, the user, a highly flexible editor for creating
  1063. the shapes and materials you desire using a working environment you can
  1064. configure to your own personal requirements (or even the requirements of
  1065. a particular project). This editor is smoothly integrated with a highly
  1066. optimized rendering engine that will provide you with ray-traced images
  1067. in the minimum of time. If draft rendering is used on a fast workstation
  1068. then it is quite practical to edit using shaded surfaces.
  1069.  
  1070. The next sub-chapter is directed at users who already have some experience
  1071. with REAL 3D from the original version. To get immediately into learning
  1072. the new program just go to Chapter 4; but if you are interested in the
  1073. history of REAL 3D's development then read on...
  1074.  
  1075.                            - INTRODUCTION 1.6 -
  1076.  
  1077. 3.2.4 Real-1.X User
  1078.  
  1079. About 4 man-years of programming effort has been put into developing
  1080. version 2.0 from 1.42. Understandably the program has changed
  1081. considerably, but the basic principles of creating objects using
  1082. primitives, arranged in a hierarchy, remains.
  1083.  
  1084. The way that hierarchy is used to control and construct objects has been
  1085. expanded. Animation is no longer based upon "exposed' frames or objects
  1086. but upon new structures created in the hierarchy to describe how objects
  1087. should move and transform.
  1088.  
  1089. The whole user-interface has changed radically and many new features have
  1090. been added. Once you discover the power behind these new features they
  1091. will rapidly become essential tools that you would not want to do without.
  1092.  
  1093. Almost all of your old friends are still there, they are just living in
  1094. different places! Some functions have been replaced by much more powerful
  1095. and flexible tools to cope with the expanded features of the program.
  1096.  
  1097. The next sub-chapter is for you. It describes briefly most of the new
  1098. developments, but it is not supposed to be a substitute for learning the
  1099. new version. By all means experiment with the new features using your
  1100. experience of the earlier versions of REAL 3D, but if you don't get the
  1101. results you expect then consult the TUTORIAL, it's there to help!
  1102.  
  1103. 3.3 MAJOR DEVELOPMENTS SINCE v1.42
  1104.  
  1105. 3.3.1 System integration & Configurable interface
  1106.  
  1107. The most immediately obvious change is that there are no longer three
  1108. separate parts to the program. In REAL 3D V.2 object creation,
  1109. modification, animation, and rendering can all be carried out on ONE
  1110. screen. It is possible and often necessary to use more than one screen
  1111. but the way in which screens are used can be configured by the user.
  1112.  
  1113. This is handled by allowing the user to open screens that suit a
  1114. particular requirement and opening one or more windows on that screen.-
  1115. These windows do have specific functions depending upon their type,
  1116. but each can be configured to meet your needs.
  1117.  
  1118. It is also possible to declare one of these screens the default public
  1119. screen (OS 2.0 feature). This means that certain OS 2.0 compatible
  1120. programs can be integrated into REAL 3D. Conversely it may also be
  1121. possible to integrate into those packages that also use public screens.
  1122.  
  1123. A particular configuration of screens and windows can be saved as an
  1124. "environment" and then loaded at any time.
  1125.  
  1126. This configurable environment allows the creation of user-defined tool
  1127. gadgets and single-key macros to extend the user interface.
  1128.  
  1129. 3.3.2 Multi-selection Support
  1130.  
  1131. The OS principle of multi-selection has been included in v.2. It is now
  1132. possible to select lists of objects or even menu selections or tool icons.
  1133.  
  1134. 3.3.2.1 Multi-selecting Objects
  1135.  
  1136. Multiple objects can be selected from a Select Window using<LMB><SHLFT>
  1137. or <DRAG> in the same way as selecting icons on WorkBench. These objects
  1138. then form a list which can be used as a target for any of the modification
  1139. functions or as operands for some creation functions. This is an essential
  1140. technique for those functions which require two or more objects as
  1141. operands.
  1142.  
  1143.                            - INTRODUCTION 1.7 -
  1144.  
  1145. 3.3.2.2 Multi-selecting Functions
  1146.  
  1147. An Action List is maintained for keeping all functions selected by the
  1148. user. As many functions as required can be placed on this list by clicking
  1149. <LMB> either on the Tool Icons or on a menu selection. These functions can
  1150. then be used consecutively until the list is empty. The list operates on a
  1151. First In First Out (FIFO) basis.
  1152.  
  1153. 3.3.3 Hierarchy
  1154.  
  1155. The use of the hierarchy has been substantially expanded by the addition
  1156. of many new primitives and the functions to control them.
  1157. Probably the most important changes to the hierarchy concern: the
  1158. animation system, materials, and boolean operations.
  1159.  
  1160. 3.3.3.1 Animation System
  1161.  
  1162. The animation system is completely new. Animations are no longer based
  1163. upon frames and exposed objects. Instead time is now a global value that
  1164. controls how objects are animated and there is a special window (the
  1165. animation window) for controlling time. Time is continuous and any moment
  1166. in time can be selected and the position and state of all animated objects
  1167. can be viewed for that time. Moments in time, or frames, only become
  1168. animations when they are rendered.
  1169. Animation effects (called methods) i.e. PATH, SWEEP, COLLISION, etc.,
  1170. are now attached to objects in the hierarchy. These "methods' can effect
  1171. all those objects at the same hierarchical level, and some can even effect
  1172. other methods. This means it is possible to build the animation of a
  1173. complex object up in stages:
  1174.  
  1175. - Make a thigh rotate about a hip.
  1176. - Make a shin rotate about the knee of the thigh.
  1177. - Make the whole leg run along a path.
  1178.  
  1179. This whole object can then be positioned anywhere in space and it will
  1180. carry out its actions when animated.
  1181.  
  1182. All methods can be copied and modified by the modification functions just
  1183. like any other object. If their animation effects are controlled by other
  1184. objects which have some geometry then their effect will be modified with
  1185. them. So the running leg can be duplicated to make a pair and, with a
  1186. little bit of modification of size and position, can also become the arms
  1187. for a running man. These animated objects can then be saved by the user.
  1188.  
  1189. 3.3.3.2 Materials
  1190.  
  1191. Materials are now associated with objects in the hierarchy in the same way
  1192. as methods. These textures also effect objects in the same level.
  1193. This means that several material properties can be applied to a visible
  1194. (object) to produce extremely complex properties.
  1195.  
  1196. For example:
  1197.  
  1198. - A "shiny" material with no geometric texture can be used with a cylinder
  1199.   to make a metal tin can
  1200.  
  1201. - A picture of a label can be used as an image and "wrapped" onto the tin
  1202.   with a cylindrical texture.
  1203.  
  1204. - A third material can have mathematically defined circular "ridges" bump-
  1205.   mapped onto the ends of the can using a procedural handler.
  1206.  
  1207. Since the textures can also have a geometrical representation, that is,
  1208. a rectangular parallel projection would be represented by a dotted
  1209. rectangle on the editor screen, they can be modified just like any other
  1210. geometric.
  1211.  
  1212. This means they can be re-positioned, sized, and stretched until they are
  1213. in precisely the required place. Also a texture is just another object so
  1214. of course it can be animated!
  1215.  
  1216.                            - INTRODUCTION 1.8 -
  1217.  
  1218. 3.3.3.3 Boolean Operations
  1219.  
  1220. Boolean operations are now applied to all objects at the same level of
  1221. hierarchy instead of between just two operand objects. This means that if
  1222. a level is turned from boolean type OR (the default) to AND then the
  1223. resultant visible will consist of the over-lapping volume of ALL the
  1224. objects in that level, including any other booleans.
  1225.  
  1226. The AND NOT operation is achieved by applying the "Inverted" attribute to
  1227. one or more of the objects in the level. By setting an objects "Paints"
  1228. attribute, the "WITH PAINT" effect from the earlier versions is produced.
  1229. All these settings are available in the object attributes requester opened
  1230. with MODIFY/properties/Attributes, or there are functions under the
  1231. CREATE/Boolean menu which use operands selected from the hierarchy with
  1232. multi-selection to create the final composite.
  1233.  
  1234. 3.3.3.4 Hierarchy References and Order
  1235.  
  1236. In addition to the old feature of "logical objects" (now called levels),
  1237. which allowed new objects to be grouped at different levels of hierarchy,
  1238. there are two new objects which alter the evaluation of the hierarchy.
  1239. These are groups, which are references to a collections of points on a
  1240. free-form, and links, which allow other parts of the hierarchy to be
  1241. referenced at the current level.
  1242.  
  1243. 3.3.4 Free-form Curves and Surfaces
  1244.  
  1245. The major new feature is the addition of cubic B-spline curves and
  1246. surfaces for the construction of free-form objects. B-splines can be
  1247. controlled in a similar way to the original free-form objects in v1.42,
  1248. but the quality when rendered is significantly higher even when the
  1249. surface is constructed from very few data points.
  1250.  
  1251. There are some restrictions about using B-splines and some basic tricks
  1252. to learn. Also the calculations involved in rendering them are staggering,
  1253. so although the rendering engine has been specially optimized to cope,
  1254. they are not as fast as Phong Shaded surfaces.
  1255. The quality is well worth the wait though.
  1256.  
  1257. 3.3.5 Built-in Programming Language
  1258.  
  1259. Finally, REAL 3D V.2 has its own programming language, RPL, which allows
  1260. any function the user requires to be integrated easily into the software.
  1261.  
  1262. Chapter 4 GETTING STARTED
  1263. -------------------------
  1264.  
  1265.  
  1266. This chapter takes you through the first stages of using REAL 3D V.2.
  1267. The main part of this chapter takes you step by step through a REAL 3D
  1268. project which has been prepared specially to introduce you to most of the
  1269. fundamental principles. It should also show you the potential of this
  1270. incredibly powerful computer graphics design tool.
  1271.  
  1272. 4.1 OPENING THE PROGRAM
  1273.  
  1274. You should have already installed the program to your hard-drive, if not
  1275. go through the steps in 2.2 above before proceeding.
  1276.  
  1277. Now open the drawer where you installed the REAL 3D system and double-
  1278. click the icon "Real" using the left mouse button. From now on this will
  1279. just be described as double-clicking and the left mouse button will be
  1280. abbreviated to <LMB>. The program is quite large and will take a few
  1281. moments to load.
  1282.  
  1283.                            - INTRODUCTION 1.9 -
  1284.  
  1285. When the program first loads you will be presented with your first REAL 3D
  1286. working environment.
  1287.  
  1288. This initial environment consists of just three windows. The large almost
  1289. square window with a thin border is a view window. Through this window you
  1290. look into the REAL 3D universe.
  1291.  
  1292. The small window in the bottom right corner is a tool window or tool-box.
  1293. This contains a number of tool icons.
  1294.  
  1295. The third window on the right is a select window. This is used for
  1296. selecting objects from the hierarchy which is the special way that REAL 3D
  1297. stores all its objects. In some ways this is the most important of all the
  1298. windows in the REAL 3D system. Understanding how hierarchy and object
  1299. selection works it the key to unlocking the power behind REAL 3D.
  1300.  
  1301. This may seem to be a very simple arrangement, but it provides you with
  1302. all the basic windows and tools you will need to experiment with the
  1303. introduction project. Later you will learn how to re-configure your
  1304. environment to suit your own requirements.
  1305.  
  1306. 4.2 FAMILIARIZE YOURSELF WITH THE MENUS & TOOLS
  1307.  
  1308. 4.2.1 Menus
  1309.  
  1310. Just use the right mouse button (this will be shown as <RMB> from now on)
  1311. to browse through the menu lists. Soon you will find that they are very
  1312. logically laid out and it is easy to remember where each function lives.
  1313.  
  1314. Example 1:
  1315. Create a sphere with a menu function.
  1316.  
  1317. 1. Select the menu function Create Visibles/Sphere.
  1318.  
  1319. Note:
  1320. This means hold the <RMB> down and slide the pointer along the top menu
  1321. strip until you come to the second heading "Create". Then move the pointer
  1322. down to the first sub-menu called "Visibles" . Still holding the <RMB>
  1323. down move over the sub-menu until the pointer is over the function
  1324. "Sphere". Finally release the <RMB>.
  1325.  
  1326. The name of the function you selected appears at the top of the view after
  1327. the text "Next:". This tells you that the next function on the Action List
  1328. will be to create a sphere.
  1329.  
  1330. 2. Click the <LMB> once somewhere near the middle of the view.
  1331.  
  1332. Note:
  1333. You must just quickly click the button, don't hold it down otherwise you
  1334. will get a <DRAG> box which has a special use. If you do get a <DRAG> box
  1335. don't worry, just let go of the <LMB> and REAL 3D will automatically
  1336. select the start point for your sphere.
  1337.  
  1338. 3. Move the pointer.
  1339.  
  1340.                            - INTRODUCTION 1.10 -
  1341.  
  1342. As you move the pointer you will see the wire-frame representation of the
  1343. sphere you are creating drawn with a dark broken line. A wire-frame is
  1344. just a very fast way of representing the shape of a three-dimensional
  1345. object on the two dimensional surface of your monitor.
  1346.  
  1347. 4. When the sphere is the size you want just click the <LMB> again to
  1348.    complete the creation process.
  1349.  
  1350. The wire-frame is drawn with a solid white line, and the name "ellipsoid"
  1351. appears in the select window.
  1352.  
  1353. 4.2.2 tool icons
  1354.  
  1355. You can also see a window containing a number of tool icons which provide
  1356. single click access to many of the most frequently needed functions.
  1357. There are more icons available, only the basic ones are currently in the
  1358. tool window. You can find out how to add more icons to your tool box and
  1359. even create your own in the TUTORIAL section.
  1360.  
  1361. Example 2:
  1362. Using the Create/"Sphere" tool icon to create a second sphere.
  1363.  
  1364. 1. Click on the icon in the tool-box. The icon is second one of the fourth
  1365.    icon row.
  1366.  
  1367. 2. Select the center for the sphere using the <LMB> as you did in step 2
  1368.    of Example 1 . Select a point away from your first sphere so that the
  1369.    new one will not overlap.
  1370.  
  1371. 3. Follow steps 3 & 4 above.
  1372.  
  1373. You should now have two wire-frames of spheres and the Select Window will
  1374. have the names "ellipsoid" and "ellipsoid.1" on the list of objects.
  1375.  
  1376. 4.2.3 Hot-keys
  1377.  
  1378. You might want to see what your spheres look like when shaded so follow
  1379. the following example.
  1380.  
  1381. Example 3:
  1382. Invoking the rendering engine using a hot-key.
  1383.  
  1384. 1. Press and hold the right Amiga key (<RAM> from now on).
  1385.  
  1386. 2. Press the "r" key. Pressing the shift key is unnecessary, the hot-keys
  1387.    are not case sensitive.
  1388.  
  1389. Note:
  1390. Make sure you have the view window active. Click on it or check to see if
  1391. it is "highlighted".
  1392.  
  1393. You have just used the hot-key <RAM>r to start rendering. The rendering
  1394. engine will produce a shaded image of your two spheres using its Draft
  1395. setting. Your environment was set up with 8 levels of gray, but most other
  1396. graphics modes are supported. The rendering engine is the part of the
  1397. REAL 3D system that draws your objects as shaded surfaces instead of
  1398. wire-frames.
  1399.  
  1400. 4.2.4 Conclusion
  1401.  
  1402. That is how easy it is to create and render objects using REAL 3D.
  1403. Obviously it will take some practice to create complex scenes and
  1404. animations, but follow the next sub-chapter through and you will begin
  1405. to see the potential...
  1406.  
  1407.                            - INTRODUCTION 1.11 -
  1408.  
  1409. 4.3 INTRODUCTION PROJECT
  1410.  
  1411. A special set of files have been prepared to accompany this manual, you
  1412. will use the first of these now in order to get a brief taste of the
  1413. power of REAL 3D V.2. If you are new to REAL 3D and especially if the
  1414. whole process of using the Amiga is new to you, take your time and read
  1415. the instructions carefully. Everything has been arranged in a concise
  1416. and logical fashion to make it easy for you. Just follow the instructions
  1417. and the manual will guide you through.
  1418.  
  1419. 4.3.1 Loading the Project
  1420.  
  1421. The first thing you need to do is load the introduction project.
  1422. A REAL 3D project contains the information necessary to define a scene
  1423. or animation in the REAL 3D universe.
  1424.  
  1425. Example 4:
  1426. Load a new project.
  1427.  
  1428. 1. Select the menu function Project/Project/Replace using the same
  1429.    process for menu selection as described in Example 1 above.
  1430.    A standard file selector is opened.
  1431.  
  1432. This is the basic style of requester for loading and saving files.
  1433. It shows the files that are available in the current drawer as a
  1434. selection list, and a number of other gadgets for controlling which types
  1435. of files are shown and for moving to different drawers and partitions of
  1436. your disk.
  1437.  
  1438. Note:
  1439. To select a file, move the pointer over the name of the file in the list
  1440. and click <LMB> . The file name will be high-lighted and at the same time
  1441. it will appear in the "File" text-gadget box.
  1442.  
  1443. 2. Select the "Intro.prj" file. Then move the pointer over the OK button-
  1444.    gadget and click <LMB>.
  1445.  
  1446. REAL 3D has loaded a new set of windows as part of the working environment
  1447. for the "Intro" project. You can see a view, a select window, and an
  1448. animation window. The animation window contains all the gadgets for
  1449. controlling animation playback and recording (much like VCR controls).
  1450. You will find out how to use some of these gadgets shortly, the rest are
  1451. explained in the TUTORIAL. This window has been opened on its own private
  1452. screen. For the moment slide the animation window down out of the way by
  1453. following the method :
  1454.  
  1455. 3. Move the pointer over the dark bar at the top of the Animation Screen,
  1456.    press and hold the <LMB> and then move the pointer down to slide the
  1457.    screen out of the way. When you can see all the view then release the
  1458.    <LMB> to let go of the screen bar.
  1459.  
  1460. Now you can begin to investigate the features of the project.
  1461.  
  1462.                            - INTRODUCTION 1.12 -
  1463.  
  1464. 4.3.2 Refreshing and Rendering
  1465.  
  1466. Example 5:
  1467. Testing refreshing and view projection types.
  1468.  
  1469. 1. Move the pointer onto the view window, click <LMB> to make it the
  1470.    active window, then press the <ENTER> key.
  1471.  
  1472. Pressing <ENTER> has refreshed all the windows. Now you can see the
  1473. wire-frame representations of the objects in this REAL 3D universe.
  1474.  
  1475. Note:
  1476. An object is any item like a shape or surface that is stored in the
  1477. special structure called the hierarchy. The principle of how objects are
  1478. stored in hierarchy is very important to understanding REAL 3D, but for
  1479. now just think of the hierarchy as like your hard-drive.
  1480. It can contain different types of objects and can have different
  1481. "drawers" for putting objects in.
  1482.  
  1483. 2. To see the wire-frames in perspective select the View/Type menu, and
  1484.    click the <LMB> once on the "Perspective" item. A check mark will
  1485.    appear on the left to show that this type is now selected.
  1486.  
  1487. Note:
  1488. Before you clicked on "Perspective" you may have noticed that the View
  1489. Projection Type was "Parallel". This type of projection produces the kind
  1490. of wire-frame views used by most CAD programs.
  1491.  
  1492. 3. Now try pressing each of the different cursor keys several times.
  1493.  
  1494. You will see that as you press the keys the wireframe image rotates. You
  1495. can continue to rotate in any direction until you come right back to the
  1496. starting position.
  1497.  
  1498.                            - INTRODUCTION 1.13 -
  1499.  
  1500. Note:
  1501. If you find the direction of the rotation confusing then you should
  1502. realize that it is rotating the View about the objects in the same way as
  1503. you move a camera or turn your head. If you turn your head to the left
  1504. (left cursor key or <LCK>) then what you are looking at moves to the
  1505. right.
  1506.  
  1507. 4. To re-display your starting position use View/Display/Reset or <RAM>e.
  1508.    The view returns to its original viewing position and the wireframes
  1509.    are re-drawn.
  1510.  
  1511. Example 6:
  1512. Experimenting with rendering techniques.
  1513.  
  1514.  
  1515. 1. For the simplest rendering select the function View/Render/Window.
  1516.    "Simple Shaded View of Introduction Project"
  1517.  
  1518. The wire-frame image is quickly replaced by one showing the objects as
  1519. gray shaded surfaces. As it was when you pressed <RAM>r, the view has
  1520. been refreshed using the simple shaded surface rendering mode called
  1521. "Draft". This is a special very high-speed technique used by the
  1522. rendering engine which just gives you the fastest possible truly three
  1523. dimensional representation of your visible objects. It is possible, on
  1524. a fast workstation, to use this mode as part of your interactive
  1525. editing of objects.
  1526.  
  1527. 2. Select the function View/Render/Settings.
  1528.  
  1529.                            - INTRODUCTION 1.14 -
  1530.  
  1531. This will open a Render Settings Requester Window with many gadgets that
  1532. covers most of the screen.
  1533.  
  1534. Note:
  1535. These gadgets are easy to learn and will give you complete control of how
  1536. the rendering engine converts your scene into an image.
  1537.  
  1538. 3. Move the pointer up towards the top left hand corner of the render
  1539.    settings requester and find the gadget labelled "Mode". You will see
  1540.    that the actual button is showing that it is in "Draft" mode. Click
  1541.    once on this cycle-gadget and the rendering mode will change to
  1542.    "Environment.
  1543.  
  1544. 4. Now move down to the bottom left corner and select "OK" to confirm the
  1545.    change. This will close the window.
  1546.  
  1547. 5. You should now render the view again.
  1548.  
  1549. Note:
  1550. You have used the hot-key <RAM>r before, so you can use it from now on
  1551. whenever you want the rendering engine to refresh a view.
  1552.  
  1553.                            - INTRODUCTION 1.15 -
  1554.  
  1555. Remember:
  1556. Using <RAM>r ONLY affects view windows, so you must make sure that one is
  1557. active by clicking it; otherwise nothing will happen.
  1558.  
  1559. The scene is re-drawn, only this time the big sphere is striped and shows
  1560. the realsoft Logo, and the base has a chequered pattern.
  1561.  
  1562. Note:
  1563. "Environment mode is the first rendering mode that uses materials when it
  1564. creates the image. If you want to create realistic looking scenes you have
  1565. to be able to describe how an object affects the light which falls on it.
  1566. This is done by defining a material and applying it to the object.
  1567. The TUTORIAL explains all the details of creating and using materials.
  1568.  
  1569. 6. The image looks a bit "over-exposed" so you should make another small
  1570.    adjustment to the render settings. To open the render settings
  1571.    requester, you can use the menus, or the hot-key <RAM>s. Now find the
  1572.    slider-gadget labelled "Brightness'. (It's on the left, near the
  1573.    bottom.) To the right of the slider is a number, currently it shows the
  1574.    value of "Brightness' as 100. Move the slider until this value is
  1575.    between 70 and 80; then confirm the change with "OK', and render the
  1576.    view again.
  1577.  
  1578. Note:
  1579. To move the slider, just position the pointer over the dark rectangle,
  1580. hold the <LMB>, and move the mouse from right to left.
  1581.  
  1582. When the rendering engine produces the image this time, the over-all level
  1583. of light is reduced so those bright parts of the scene that had become
  1584. overexposed are now at a more natural level. This is just like adjusting
  1585. the "Contrast' control of your monitor.
  1586.  
  1587. 7. If you want to see what this scene looks like now in color, select
  1588. View/Render/HAM. This will open render settings so you can make any last
  1589. minute adjustments before rendering. You can look at one more feature of
  1590. the rendering engine by clicking on the check-gadget labeled "Backgr.
  1591. gradient". A check mark will appear on the button to show that this
  1592. feature is enabled. Everything else should be just perfect so click "OK".
  1593.  
  1594. REAL 3D automatically opens a HAM screen with a full-screen window with
  1595. no border. This type of window is called a borderless view. The rendering
  1596. engine is also started. You will see the scene rendered in color this
  1597. time. The background will be shaded from a light to a darker gray.
  1598.  
  1599. We will now have a look at some of the features of the animation system.
  1600.  
  1601. 4.3.3 Animating
  1602.  
  1603. Example 6:
  1604. Playing an animation.
  1605.  
  1606. 1. First you should close the HAM screen. Select the function
  1607.    Project/Environment/Close - Current.
  1608.  
  1609. REAL 3D closes the borderless view and the HAM screen leaving you with
  1610. your original environment.
  1611.  
  1612. 2. Use the same method as you did in Example 4, step 3 to get hold of
  1613.    the title bar of the animation screen and drag it so you can see all
  1614.    the gadgets as far down as the one on the right showing "Wireframe'.
  1615.  
  1616. 3. Click the "Play Forwards" gadget labelled with "->|".
  1617.  
  1618. This will play a wire-frame pre-view of the animation.
  1619.  
  1620.                            - INTRODUCTION 1.16 -
  1621.  
  1622. 4. When the anImatIon play stops, click the play backwards gadget on the
  1623.    Animation Window. "l<-".
  1624.  
  1625. 5. The wire-frame animation will now play backwards.
  1626.  
  1627. You will notice that the small bouncing sphere has not ended up in its
  1628. original position. The reasons for this is that its animation is
  1629. influenced by "Particle Animation" and it requires some special handling
  1630. that will be discussed later in the manual. For now, just remove this
  1631. part of the animation:
  1632.  
  1633. 6. Move the pointer onto the select window and click once on the object
  1634.    name "Particle_Sys".
  1635.    The name "Particle_Sys" is now high-lighted to show that it is a
  1636.    selected object.
  1637.  
  1638. 7. Now select the function Modify/Structure/Delete.
  1639.  
  1640. The object "Particle_Sys" has been deleted. Its name is removed from
  1641. the select window and the wire-frame of the bouncing ball is missing
  1642. from the view. This is because the Particle_Sys object was actually
  1643. several objects, including the visible ones, contained in a single
  1644. drawer-like object which is called a level in REAL 3D terminology.
  1645.  
  1646. 8. Now you can try all the other "VCR-like" button-gadgets on the
  1647.    animation window, and the animation will behave exactly as you expect.
  1648.  
  1649. Note:
  1650. As you play with the gadgets notice what happens with the "knob" on the
  1651. "Time" slider gadget and to the numbers in the box to the right of it.
  1652. They show the animation time which is always between 0.0 and 1.0.
  1653.  
  1654. 4.3.3. 1 "Jump To/Play To" and the "Time Slider"
  1655.  
  1656. Example 7:
  1657. Testing the "Time Slider" controls.
  1658.  
  1659. 1. Use the <LMB> to hold the "knob" of the slider as you did with the
  1660.    "Brightness" control of render settings. Now move it to a new time.
  1661.  
  1662. Time goes immediately to the new value, and the view is refreshed showing
  1663. the position of "Animation Obj" for that time. If you cannot clearly
  1664. determine the position from the wireframes just click on the view and use
  1665. <RAM>r to render the image.
  1666.  
  1667. Remember:
  1668. If "Environment" mode is too slow for your workstation then change it to
  1669. "Draft" using render settings.
  1670.  
  1671. 2. Click on the cycle-gadget which is showing "Jump To". It will change
  1672.    to "Play To". Now when you change time with the slider the animation
  1673.    is played from the current time to the new value.
  1674.  
  1675. 4.3.3.2 "Wireframe/Ray Trace" Gadget
  1676.  
  1677. There is one last gadget that you should look at while "Getting Started".
  1678. This controls how the animation system refreshes your view while it plays
  1679. back the animation.
  1680.  
  1681. Example 8:
  1682. Testing Animation Refresh
  1683.  
  1684. 1. Use one of the Time controls to set the animation at the start. Now
  1685. click on the cycle-gadget showing "Wire frame". It changes to "Ray Trace".
  1686.  
  1687.                            - INTRODUCTION 1.17 -
  1688.  
  1689. 2. Now change time slightly.
  1690.  
  1691. The animation system updates the position of the animated objects and
  1692. invokes the rendering engine to update the view. The system continues
  1693. shading new images until the time value you gave is reached. You can stop
  1694. the process by <LMB> clicking the CANCEL button.
  1695.  
  1696. 4.3.4 Rendering Revisited
  1697.  
  1698. Just before you leave the INTRODUCTION to begin the TUTORIAL you might
  1699. like to look at the full power of the rendering engine. The following
  1700. example does not describe any details of the functions you will use.
  1701. It is just here to allow you to see how realistic the images are that
  1702. REAL 3D can produce.
  1703.  
  1704. Example 9:
  1705. Producing an image with soft-shadows and depth-of-field.
  1706.  
  1707. 1. Use Project/Project/Replace to load a new copy of "Intro.prj".
  1708.  
  1709. 2. Click on the view and then change the View/Type to "Perspective".
  1710.    Then use <RAM>- twice to zoom the display out.
  1711.  
  1712. Note:
  1713. You may have to press the <SHIFT> key to get the "-" function.
  1714.  
  1715. 3. Now change the "Jump To" control for the time slider to "Play To" and
  1716.    set the time to about half-way through the animation.
  1717.  
  1718. Remember:
  1719. If you want the bouncing ball to be correct, you can only move
  1720. timeforward.
  1721.  
  1722. 4. To start the rendering, click on the view and select View/Render/HAM
  1723.    or use <RAM>h.
  1724.  
  1725. 5. When render settings opens, change the "Mode" to "Normal", set
  1726.    "Brightness" to about 75, and enable "Background gradient" as you did
  1727.    before.
  1728.  
  1729. 6. Now use the two slider gadgets above "Backgr. gradient" to set
  1730.    "Antialiasing" to 3 and "Lightsamples" to 1.
  1731.  
  1732. 7. Finally click the pointer in the numeric-gadget box labelled "DOF
  1733.    scale" , then enter the value 1.0. Check the settings, then confirm
  1734.    them and start the rendering with "OK".
  1735.  
  1736. This will take a few minutes to produce the finished image, as REAL 3D
  1737. is having to carry out a phenomenal number of calculations to produce
  1738. such a very realistic image.
  1739.  
  1740. 4.4 END OF THE BEGINNING
  1741.  
  1742. Hopefully this introduction has whetted your appetite and demonstrated
  1743. a little of the power of REAL 3D V.2. In the TUTORIALS that follow, you
  1744. will find that the program is logically arranged and with a little
  1745. practice you will very soon be able to create fantastic images and
  1746. animations.
  1747.  
  1748.                            - INTRODUCTION 1.18 -
  1749.  
  1750. TUTORIAL
  1751. --------
  1752.  
  1753. Chapter 1 OBJECT CREATION & MODIFICATION
  1754. ----------------------------------------
  1755.  
  1756. Before you start to read the tutorials, remember that most tutorial
  1757. examples include an example of the finished result. You will be informed
  1758. about the presence of this kind of support material in the following way:
  1759.  
  1760. Support example:
  1761. Examples/.....
  1762.  
  1763. This means that you can verify the result of the tutorial example by
  1764. replacing your current project (use menu Project/Project/Replace) with the
  1765. given file, which you can find in the "Examples" directory of the REAL 3D
  1766. drawer.
  1767.  
  1768. If you worked through Chapter 4 GETTING STARTED of the INTRODUCTION, then
  1769. you have already created some spheres, and you will have seen a few of the
  1770. other objects which can be created when you looked at the Intro.prj.
  1771. This first chapter of the tutorial is intended to give you an overview of
  1772. the user interface of the software. It will familiarize you with the use
  1773. of the hierarchy and basic creation and modify functions.
  1774.  
  1775. 1.1 STARTING THE PROGRAM
  1776.  
  1777. REAL 3D can be activated from the Workbench interface by double-clicking
  1778. the icon of the program "Real", or from the command line interpreter
  1779. (CLI/SHELL) by the command REAL.
  1780.  
  1781. If you are going to modify a project that you have created earlier, then
  1782. you can start the program by opening the icon for that object as described
  1783. in Amiga user interface manuals. The same method is valid for all data
  1784. structures created by the program. For example, you may choose to start
  1785. the program from different environment files instead of the program icon
  1786. itself, depending on what kind of modelling you are planning to do.
  1787. If the purpose is to create animations, run the program directly to the
  1788. animation environment;
  1789.  
  1790. if you are going to do accurate CAD type modelling, pick a tri-view
  1791. environment with plenty of grids. The user interface of REAL 3D is
  1792. configurable and you may customize it to suit your needs.
  1793.  
  1794. The "Environments" drawer of the software package contains some sample
  1795. environments.
  1796.  
  1797. Note:
  1798. If you start the program from CLI, make sure that the stack size is large
  1799. enough. We recommend the stack size be at least 40 000 bytes. You can use
  1800. the CLI stack command to set a proper stack size.
  1801.  
  1802. When studying this chapter, you should use the standard environment, and
  1803. therefore start the program from its icon.
  1804.  
  1805. 1.2 THE WINDOWS
  1806.  
  1807. When the program is started from its program icon, it loads the
  1808. environment definition stored in the s:real-startup file. The original
  1809. environment contains a basic 3 window interface in which all the creation
  1810. and modifying functions can be done. The largest window, a view window,
  1811. shows the object under construction. By default, it displays the object
  1812. from the front as parallel projection.
  1813.  
  1814. The construction of objects is done in view windows using the mouse. You
  1815. can see a symbol _+_ in the view window. This symbol is the "hot-point",
  1816. which displays the latest given coordinate position in space. You can move
  1817. the hot-point to a new location by clicking in a desired place.
  1818. The third coordinate value for the points, which the user defines with the
  1819. mouse, is read from the hot-point position, because a mouse button click
  1820. defines only two coordinates at a time.
  1821.  
  1822. The top border of the view displays some useful information. First, you
  1823. can see a window name identifier. Second, the projection type of the view;
  1824. parallel or perspective. Finally, the view border displays two selected
  1825. functions, current one and the next one in the FIFO list of the view.
  1826. The window in the top right corner of the display is called a selection
  1827. window.
  1828.  
  1829.                              - TUTORIAL 1.1 -
  1830.  
  1831. This window displays the names of the objects you have constructed. You
  1832. can select an object by clicking on its name in the select window.
  1833. Multi-selection happens by pressing the <SHIFT> key down and clicking the
  1834. names, or by dragging with the <LMB> in the select window. The names of
  1835. selected objects are highlighted as an indication of the selection.
  1836.  
  1837. The select window is very important part of the working environment.
  1838. Extensive use of object hierarchy is one of the most important principles
  1839. of REAL 3D.
  1840.  
  1841. The third window, in the bottom right corner of the screen, is a tool
  1842. window. It contains tool icons from which you can activate functions.
  1843. It is possible to modify the contents of the tool window and add user-
  1844. defined icons.
  1845.  
  1846. 1.3 THE MOUSE
  1847.  
  1848. When using REAL 3D, the mouse is the most important input device, and the
  1849. actions the user can do with it can be divided in two categories in the
  1850. following way:
  1851.  
  1852. - The right button is used for menu selection. In addition to this,
  1853.   certain object creation procedures can be cancelled by clicking the
  1854.   right mouse button.
  1855.  
  1856. - All the other actions are done using the left mouse button, such as
  1857.   drawing.
  1858.  
  1859. Remember:
  1860. Left mouse button is abbreviated as <LMB>, and right one as <RMB>.
  1861.  
  1862. Most of the actions in REAL 3D can be performed by menu selection in a
  1863. way which is defined by the Workbench user interface: to select a menu
  1864. item, press the right mouse button, point to the menu bar, then point to
  1865. the desired menu item and release the right button, The highlighted menu
  1866. item is the one which is being selected. You can experiment by selecting
  1867. Extras/Refresh/Wire-frame. The program replies by redrawing the display.
  1868.  
  1869. Also, menu multi-selection is supported: to select several menu items at
  1870. the same time, keep the right mouse button down and select the menus with
  1871. the left mouse button. The multi-selected actions are executed in First
  1872. In First Out order (FIFO).
  1873.  
  1874. Note that each window type may have its own menu system which may be
  1875. different from other windows menus, and some windows may have part of the
  1876. menus inactive. For example, it is not possible to select the function
  1877. View/Render/Window when a "select" window is active. You must have a
  1878. "view" window active (selected).
  1879.  
  1880. In this manual menus are represented in the following way:
  1881.  
  1882. - Menu/Item.
  1883.  
  1884. - Menu/Item/Sub-item.
  1885.  
  1886. For example: Create/Visibles/Sphere.
  1887.  
  1888. Instead of using menus, most functions can be activated using keyboard
  1889. equivalents (Hot-Keys) or tool window icons.
  1890.  
  1891. When using the left mouse button, use sharp clicks instead of keeping the
  1892. button down and moving the mouse. Left mouse button dragging is reserved
  1893. for certain point selection functions.
  1894.  
  1895. For example, when shaping a rectangle, click on the top left corner, and
  1896. then release the button. Then you may freely move the mouse, or even
  1897. select some menus, or have a cup of coffee. When you are certain of the
  1898. position of the bottom right corner of the rectangle, click a second
  1899. time in the desired place.
  1900.  
  1901. When modelling objects with exact coordinates, it may be difficult to
  1902. obtain high enough accuracy using the mouse. In such a situation, you can
  1903. replace left mouse button clicks using either the vector stack or a
  1904. measuring window. These will be described in detail later.
  1905.  
  1906. Left mouse button "dragging", moving the mouse while keeping the left
  1907. button pressed, has some special functions in REAL 3D. If you try this in
  1908. the view window, you see that a box is shaped according to the mouse
  1909. pointer movements.
  1910.  
  1911.                              - TUTORIAL 1.2 -
  1912.  
  1913. By default, the average is projected to the input plane, which is the
  1914. plane in 3D space along which the coordinates run when you move the mouse.
  1915.  
  1916. If you want to consider only the points of the selected objects instead of
  1917. the whole scene, keep the <Alt> key pressed when dragging.
  1918. The other important <key><DRAG> combinations are:
  1919.  
  1920. - <SHIFT><DRAG>, which pushes the points inside the drag box onto the
  1921.   vector stack. This operation does not project the average into the input
  1922.   plane.
  1923.  
  1924. - <SHIFT><Ctrl><DRAG>, which creates a point group for point editing of
  1925.   freeform objects.
  1926.  
  1927. Although the averaging operation is simple, it is very useful. Using this
  1928. feature, you can easily lock the mouse coordinates to any existing point
  1929. when modifying or creating an object; just drag the box around the one
  1930. single point.
  1931.  
  1932. The following examples demonstrate how the dragging feature can be used.
  1933. Try these examples if you are already familiar with the software. (come
  1934. back to these later, once you've learned the basics)
  1935.  
  1936. To lengthen a cylinder:
  1937.  
  1938. 1 . Activate the cylinder and select the Extend function.
  1939.  
  1940. 2. Drag a box around the points of one end of the cylinder.
  1941.  
  1942. 3. Drag a box around the other end.
  1943.  
  1944. 4. Extend the object.
  1945.  
  1946. To create a circle precisely in the middle of another circle:
  1947.  
  1948. 1. Select the circle creation function.
  1949.  
  1950. 2. Drag a box around the points of the circle; this defines the middle
  1951.    point of the new circle.
  1952.  
  1953. 3. Define the radius.
  1954.  
  1955. To move a triangle so its top will be in the middle of an edge of a
  1956. rectangle, assuming that the two objects do not lie originally in the
  1957. same plane:
  1958.  
  1959. 1. Activate the triangle and select the Move function.
  1960.  
  1961. 2. To ensure the operation is done correctly in all three dimensions,
  1962.    press <SHIFT> and drag a box around the top point of a triangle; this
  1963.    puts the top point to the vector stack.
  1964.  
  1965. 3. Hit <RAM>. (right-Amiga-period). This pulls the true 3D coordinates
  1966.    of the triangle top from the vector stack.
  1967.  
  1968. 4. <SHIFT> <DRAG> a box containing the two end points of the desired edge
  1969.    of the rectangle.
  1970.  
  1971. 5. Hit<RAM>.
  1972.  
  1973. 1.4 BASIC TERMINOLOGY
  1974.  
  1975. The term "object" in REAL 3D is used to describe all the items which are
  1976. stored in the hierarchy. Objects take many different forms, depending
  1977. upon their purpose. Not all objects have wire-frames, and some with
  1978. wire-frames do not have a visible surface when they are rendered.
  1979. Some objects cannot be seen at all, except as a name in a select window.
  1980.  
  1981. There is one special class of object, which you need to know about,
  1982. called a "primitive". A primitive is the most basic kind of object.
  1983.  
  1984. In the REAL 3D universe, a primitive cannot be divided into smaller
  1985. sub-objects. They are a bit like the fundamental particles of matter.
  1986. Objects can be made from primitives and even other objects. One final
  1987. point of terminology; a primitive is an object, but not all objects are
  1988. primitives.
  1989.  
  1990.                              - TUTORIAL 1.3 -
  1991.  
  1992. If no special keys are pressed while dragging, the program calculates an
  1993. average of all the points of the scene inside the dragged box, and moves
  1994. the hot-point to the average point. There are six main classes of
  1995. primitives, but you will only look at the first four in this chapter.
  1996. Most of these types also have some sub-types.
  1997.  
  1998. visibles - These primitives produce a visible surface when rendered unless
  1999. you take some action to alter their basic nature.
  2000.  
  2001. structures - These primitives have no wire-frame and do not render, but
  2002. despite that, they are in many ways the most important kind of primitive
  2003. in the hierarchy. Structures control how other primitives are arranged
  2004. and accessed by all the different functions of REAL 3D.
  2005.  
  2006. controls - Although these have wire-frames, they do not have any surface
  2007. and so do not render. As their name implies, they are used for controlling
  2008. the action of various REAL 3D functions.
  2009.  
  2010. freeforms - A collection of points describing a free-form line or surface
  2011. is called a freeform in REAL 3D terminology.
  2012.  
  2013. This may seem a little confusing at first, but as you work through the
  2014. tutorial, how, when, and where to use each of these objects will become
  2015. clear.
  2016.  
  2017. 1.5 TUTORIAL EXAMPLE 1: SELECT WINDOWS AND HIERARCHY
  2018.  
  2019. All the objects created by REAL 3D consist of so called primitives.
  2020. These are the basic components and tools from which you can construct more
  2021. complex objects. To create a primitive "rectangle":
  2022.  
  2023. 1. Choose the menu Create/Visibles/Rectangle.
  2024.  
  2025. 2. Move the mouse pointer to a desired location and click the left button.
  2026.  
  2027. 3. Now you can shape the rectangle by moving the pointer.
  2028.  
  2029. 4. Click the left button, and REAL 3D creates a primitive "rectangle".
  2030.  
  2031. Now the view displays a rectangular wireframe. You can look at the
  2032. rectangle from different directions using cursor keys, or <RAM>X for
  2033. (front view), <RAM>y for (side view), or <RAM>z for (top view). The
  2034. rectangle is a plane, and therefore it appears as a line when you look at
  2035. it from the side. You can also see a peak perpendicular to the rectangle.
  2036. The purpose of this peak is explained in the context of Boolean
  2037. operations.
  2038.  
  2039. Remember: <RAM>x means that you first press the right Amiga key down, then
  2040. you hit "x" key, and then you release right Amiga key.
  2041.  
  2042. You can see the logical structure of your object in the select window.
  2043. Your scene "Root" consists of one single primitive, "rectangle". If you
  2044. now move the pointer on the name "Root" and click the left button, you
  2045. can see the name being highlighted on the instruction window as an
  2046. indication of the selection.
  2047.  
  2048. Figure T1-1: Select Window  (PICTURE: T1.1)
  2049.  
  2050. The names "Root" and "rectangle" are printed in different text types in
  2051. the select window: "Root" is written with bold typeface, and "rectangle"
  2052. is in normal type. The bold or normal gives an indication that the objects
  2053. are of different "types" i.e. "Root" is a hierarchical object having a
  2054. substructure, whereas rectangle does not have any sub-hierarchy.
  2055.  
  2056.                              - TUTORIAL 1.4 -
  2057.  
  2058. The object type, which "Root" represents, is called a level in REAL 3D.
  2059. REAL 3D uses levels to collect the parts of an object into groups. It is
  2060. possible to select and modify very complex levels without having to deal
  2061. with their substructures.
  2062.  
  2063. For example, if you have grouped all the parts of a robot arm under one
  2064. single level "robot arm", then you can rotate the whole arm, and there
  2065. is no need to pay any attention to each finger etc.
  2066.  
  2067. A well known example of this kind of a hierarchical data management are
  2068. disk operating systems: the level "Root" corresponds to a directory in
  2069. DOS, and the counterpart of the object "rectangle" is an actual DOS file.
  2070.  
  2071. 1.5.1 The Current Level
  2072.  
  2073. Next we will study some basic functions of the select window. For this,
  2074. we need an object hierarchy which is a bit more complex:
  2075.  
  2076. 1. Select menu Create/Structure/Level.
  2077.  
  2078. A new level appears in the select window:
  2079.  
  2080.      Root
  2081.         rectangle
  2082.         level
  2083.  
  2084. The new level was inserted after the rectangle, to the same hierarchy
  2085. level as the rectangle. This happens because "Root" is the so called
  2086. current level. Each select window stores the information of its own
  2087. current level, and the program inserts new objects under the current level
  2088. of the select window which was used last. This global object insertion
  2089. level is called the current level. It is quite simple once you experiment
  2090. a little.
  2091.  
  2092. To change the current level:
  2093.  
  2094. 2. Move the mouse pointer on the name "level" on the select window and
  2095.    Double-click <LMB>.
  2096.  
  2097. The contents of the select window should change to display "level" only.
  2098. Now "level" is the current level, which can be seen in the following way:
  2099.  
  2100. 3. Select menu Create/Visibles/Sphere, click <LMB> once in the middle of
  2101.    the view, shape a circle and <LMB> click again.
  2102.  
  2103. This adds a new primitive to your hierarchy. The select window displays:
  2104.  
  2105.      level
  2106.         ellipsoid
  2107.  
  2108. This means the sphere was inserted under "level", not immediately under
  2109. "Root". The whole hierarchy is:
  2110.  
  2111.              +------+
  2112.              | Root |
  2113.              +------+
  2114.               /    \
  2115.    +-----------+   +-------+
  2116.    | rectangle |   | level |
  2117.    +-----------+   +-------+
  2118.                       |
  2119.                  +----------+
  2120.                  |ellipsoid |
  2121.                  +----------+
  2122.  
  2123. The same structure can be described using indentation:
  2124.  
  2125.      Root
  2126.         rectangle
  2127.         level
  2128.           ellipsoid
  2129.  
  2130. or graphical presentation:
  2131.  
  2132.                 +-------+
  2133.                 | level |---
  2134.                /+-------+   \ +-----------+
  2135.               /              \| ellipsoid |
  2136.      +------+/ +-----------+  +-----------+
  2137.      | Root |--| Rectangle |
  2138.      +------+  +-----------+
  2139.  
  2140. Figure T2-1: Simple Object Hierarchy
  2141.  
  2142.                              - TUTORIAL 1.5 -
  2143.  
  2144. All three methods are used throughout the manual, depending on which one
  2145. is the most convenient.
  2146.  
  2147. If you <LMB> double-click name "rectangle", the result of the action is
  2148. highlighting the name of the object in the select window. This is because
  2149. the object "rectangle" represents the lowest level of the hierarchy, and
  2150. there is no substructure to be displayed on the select window.
  2151.  
  2152. To change the current level back to "Root":
  2153.  
  2154. 4. <LMB> double-click the topmost item, "level", on select window.
  2155.  
  2156. Now the contents of "Root" level are displayed again. You are now on the
  2157. top of the object structure hierarchy, and if you double-click "Root",
  2158. nothing happens. If "Root" had been a part of a larger object, then you
  2159. could have moved one step upwards in the hierarchy, and REAL 3D would have
  2160. revealed all the objects in the same hierarchy level as "Root".
  2161.  
  2162. 1.5.2 Object Multi-selection
  2163.  
  2164. Next we will experiment with modifying an object. But first, since we are
  2165. going to consider multi-selection, continue with the previous example by
  2166. creating one more primitive (make sure that "Root" is the current level):
  2167.  
  2168. 1. Select Create/Visibles/Cube and shape a cube just as you created the
  2169.    rectangle. The size and position of the cube doesn't matter for this
  2170.    example.
  2171.  
  2172. So, now you have the following hierarchy:
  2173.  
  2174.      Root
  2175.         rectangle
  2176.         level
  2177.           ellipsoid
  2178.      cube
  2179.  
  2180. To move the cube to another position in space:
  2181.  
  2182. 1. Select the cube by <LMB> clicking its name on select window.
  2183.  
  2184. Note:
  2185. After creating the cube, it should be automatically selected, unless
  2186. Settings/Creation/Auto _selected feature is switched off. Clicking the
  2187. name again to re-select it does no harm.
  2188.  
  2189. 2. Choose the menu Modify/Linear/Move.
  2190.  
  2191. 3. Move the mouse pointer, for example, to the middle of the cube and
  2192.    click the left mouse button.
  2193.  
  2194. 4. Move the cube to a new location and <LMB> click.
  2195.  
  2196. Note:
  2197. Right mouse button cancels the modification.
  2198.  
  2199. Now experiment with multi-selection:
  2200.  
  2201. 5. Move the mouse pointer over "rectangle" on the select window, press
  2202.    and keep <LMB> down, move the mouse down until all the three names
  2203.   under "Root" are highlighted, and release the <LMB>.
  2204.  
  2205. 6. Repeat the Move function and verify that all the three objects you
  2206.    selected are moving.
  2207.  
  2208. Multi-selection can also be accessed in the following manner:
  2209.  
  2210. 7. Click on select window below all the names in order to deselect all
  2211.    objects. Highlighted names now become normal.
  2212.  
  2213. 8. Press <SHIFT> key down and keep it there.
  2214.  
  2215. 9. Click the name "Rectangle".
  2216.  
  2217. 10. Click the name "level".
  2218.  
  2219. 11. Click the name "cube".
  2220.  
  2221. 12. Release <SHIFT> key.
  2222.  
  2223.                              - TUTORIAL 1.6 -
  2224.  
  2225. Again, you multi-selected the same three items, this time one by one.
  2226. The next test explains another useful trick:
  2227.  
  2228. 13. Press <SHIFT> key down and keep it there.
  2229.  
  2230. 14. Click the name "level".
  2231.  
  2232. 15. Release <SHIFT> key.
  2233.  
  2234. This deselects "level". This way it is possible to deselect individual
  2235. objects which you have selected by mistake without starting the whole
  2236. selection process from the beginning.
  2237.  
  2238. To finish this example, do the following:
  2239.  
  2240. 16. Multi-select the three objects in "Root" level as you did before.
  2241.  
  2242. 17. Select Modify/Structure/Delete.
  2243.  
  2244. You have deleted the scene of a rectangle, sphere and cube.
  2245.  
  2246. Note:
  2247. You cannot delete the root object.
  2248.  
  2249. Summary: REAL 3D uses a hierarchy tree for describing and managing the
  2250. structure of the scene. There are two important concepts related to the
  2251. hierarchy tree:
  2252.  
  2253. - The Current Level, under which new objects are inserted
  2254.  
  2255. - List of Selected Objects, which defines the target of object
  2256.   modifications.
  2257.  
  2258. 1.6 TUTORIAL EXAMPLE 2: 3D MODELLING
  2259.  
  2260. In this example, we create a simple table. The example demonstrates how
  2261. to use object hierarchy, and especially the principles of 3D modelling.
  2262.  
  2263. The table consists of a cover and a base, and the base consists of two
  2264. stands and a brace. We will create the table only using cubes. The
  2265. following picture illustrates the structure of the table:
  2266.  
  2267. Figure T1-3: Table  (PICTURE: T1-3)
  2268.  
  2269. You can continue modelling this example from the situation of where the
  2270. last example ended, or start from new. You have the standard 3 window
  2271. configuration and no objects built yet. You may also select
  2272. Project/Project/New or restart the program before commencing.
  2273.  
  2274. We start building the table by creating the hierarchy level, which
  2275. contains all the parts of the table:
  2276.  
  2277. 1. Choose Create/Structure/Level.
  2278.  
  2279. 2. Choose the menu Modify/Properties/Name. A requester is opened.
  2280.  
  2281. 3. Write the name "table" and hit <RETURN> or select OK.
  2282.  
  2283. Figure T1-4: The Name Input Device  (PICTURE: T1-4)
  2284.  
  2285.                              - TUTORIAL 1.7 -
  2286.  
  2287. To create the cover of the table:
  2288.  
  2289. 4. Open a palette window: use Project/Windows/Palette or hit <RAM>p.
  2290.  
  2291. 5. Choose a nice color for the cover by pressing <LMB> down on the color
  2292.    bar of the palette window. When a good color is found, release <LMB>
  2293.    and click the OK gadget. Then close the window using the standard
  2294.    window close gadget.
  2295.  
  2296. 6. To ensure accurate positioning, select View/Grid/Snap to Grid. From now
  2297.    on, mouse coordinates are rounded to suitable intervals, and it becomes
  2298.    easy to line up objects.
  2299.  
  2300. 7. Activate the view window by clicking it and hit <RAM>e. Now you've got
  2301.    the standard front view.
  2302.  
  2303. 8. Hit <RAM>z. Now you've got top view; now click in the middle of the
  2304.    view. This moves the hot-point to the middle and guarantees that the
  2305.    third coordinate (z-coordinate) will be correct when you do front view
  2306.    modelling. (you have defined the z input coordinate).
  2307.  
  2308. 9. Go back to front view by hitting <RAM>x.
  2309.  
  2310. 10. Choose Create/Visibles/Cube, and shape a low but wide cube to
  2311.     represent the cover as it is seen from the front.
  2312.  
  2313.            ----------------
  2314.  
  2315. Figure T1-5: Front View of the Cover of the Table.
  2316.  
  2317. 11. "Cube" is not a good name for the cover of the table, so change it:
  2318.     choose the menu Modify/Properties/Name. Enter the name "cover" and
  2319.     hit <RETURN>.
  2320.  
  2321. Now you have created a table which consists of a cover only. Now lets
  2322. create an object "base":
  2323.  
  2324. 12. Choose Create/Structure/Level.
  2325.  
  2326. 13. Choose the menu Modify/Properties/Name, enter the name "base" and
  2327.     hit RETURN.
  2328.  
  2329. Your table now consists of a cover and a base. Next we will start to
  2330. build the base, but remember that we have to instruct the program to
  2331. insert the new objects under the "base" level:
  2332.  
  2333. 14. <LMB> double-click the name "base" on the select window.
  2334.  
  2335. This changes the current level to "base", and the contents of "base" are
  2336. displayed. As it was shown in the previous chapter, as long as the current
  2337. level is "base", every new object or primitive you create will become a
  2338. part of the base.
  2339.  
  2340. Now the hierarchy is:
  2341.  
  2342.           +------+
  2343.           | Root |
  2344.           +------+
  2345.            /    \
  2346.     +-------+  +------+
  2347.     | cover |  | base |
  2348.     +-------+  +------+
  2349.  
  2350. The base is a hierarchy level, which so far has nothing in it.
  2351.  
  2352. To create a stand for the table:
  2353.  
  2354. 15. Choose Create/Primitives/Cube and shape a narrow, high cube to
  2355.     represent a stand, as shown below.
  2356.  
  2357.            ----------------
  2358.             |
  2359.             |
  2360.             |
  2361.             |
  2362.             |
  2363.             |
  2364.  
  2365. Figure T1-6: Front View After Step 15.
  2366.  
  2367. 16. Rename the new cube as "stand1" by choosing Modify/Properties/Name.
  2368.  
  2369. The stands of the table are identical, therefore you can create the
  2370. second stand by using the duplicate function:
  2371.  
  2372.                              - TUTORIAL 1.8 -
  2373.  
  2374. 17. Choose the menu Modify/Structure/Duplicate, having the stand as the
  2375.     selected object.
  2376.  
  2377. 18. Move the copy to the right place by choosing Modify/Linear/Move.
  2378.  
  2379.            ----------------
  2380.             |            |
  2381.             |            |
  2382.             |            |
  2383.             |            |
  2384.             |            |
  2385.             |            |
  2386.  
  2387. Figure T1-7: Front View After Step 18.
  2388.  
  2389. As you have seen, REAL 3D automatically gives names to primitives
  2390. according to their types. This is handy when you are making a relatively
  2391. small object, and therefore it is easy to identify the different parts of
  2392. the object. Anyway, it is usually wise to give a name to each part of the
  2393. object which describes its purpose. Therefore:
  2394.  
  2395. 19. Choose Settings/Creation/Qry Prim. Name.
  2396.  
  2397. 20. It is best to create the brace of the table using side the view, so
  2398.     hit <RAM>y.
  2399.  
  2400. 21. Shape a narrow, high cube in the middle of the stands (see figure
  2401.     below). When REAL 3D asks the name of the primitive, type "brace".
  2402.  
  2403.     -----------------
  2404.     |               |
  2405.     -----------------
  2406.     |      | |      |
  2407.     |      | |brace |
  2408.     |      | |      |
  2409.     |      |_|      |
  2410.     |               |
  2411.     |_______________|
  2412.  
  2413. Figure T1-8: Side View After Step 21.
  2414.  
  2415. 22. Also, the cover of the table should be modified so it becomes wider
  2416.     than the stands. The side view you have now is suitable for this:
  2417.     change the current level back to root and select the cover.
  2418.     Then select menu Modify/Linear/Move and move the cover slightly
  2419.     (e.g. 2 grid units) to the left.
  2420.  
  2421. 23. The cover is too narrow, so select menu Modify/Linear/Extend.
  2422.     Then click on the top left corner of the cover and then on the top
  2423.     right corner - when you move the mouse, you see that the cover width
  2424.     is changing accordingly. Move the mouse e.g. 4 grid units to the right
  2425.     from the original top right corner, so that the right edge reaches out
  2426.     over the edge of the stands as much as the left edge does.
  2427.  
  2428.           -----------------
  2429.           |               |
  2430.           -----------------
  2431.           |      | |      |
  2432.           |      | |      |
  2433.           |      | |      |
  2434.           |      |_|      |
  2435.           |               |
  2436.           |_______________|
  2437.  
  2438.  
  2439.             <------- move
  2440.          -----------------
  2441.          |               |
  2442.          ------------------
  2443.           |      | |      |
  2444.           |      | |      |
  2445.           |      | |      |
  2446.           |      |_|      |
  2447.           |               |
  2448.           |_______________|
  2449.  
  2450.  
  2451.            extend ------->
  2452.         ---------------------
  2453.         |                   |
  2454.         ---------------------
  2455.           |      | |      |
  2456.           |      | |      |
  2457.           |      | |      |
  2458.           |      |_|      |
  2459.           |               |
  2460.           |_______________|
  2461.  
  2462. Figure T1-9: Modifying the Cover.
  2463.  
  2464. Now the side view shows the correct shape. But there are still some
  2465. things to do:
  2466.  
  2467. 24. Hit <RAM>x to get front view again.
  2468.  
  2469.                              - TUTORIAL 1.9 -
  2470.  
  2471. The brace cube probably doesn't fit between the stands properly. So:
  2472.  
  2473. 25. Select the brace object again using the select window.
  2474.  
  2475. 26. Move the brace so its left edge matches the inner side of the left
  2476.     stand.
  2477.  
  2478. 27. Extend the brace just as you extended the cover earlier, until it
  2479.     matches the stands (See the figure T1-3).
  2480.  
  2481. 28. Use the cursor keys to find a good viewing angle and select
  2482.     View/Render/Window or hit<RAM>r.
  2483.  
  2484. Now the table is ready. The final hierarchical structure of the table
  2485. is the following:
  2486.  
  2487.                  +------+
  2488.                  | Root |
  2489.                  +------+
  2490.                      |
  2491.                  +-------+
  2492.                  | table |
  2493.                  +-------+
  2494.                    /   \
  2495.             +-------+ +------+
  2496.             | cover | | base |
  2497.             +-------+ +------+
  2498.                       /    |  \________
  2499.                      /     |           \
  2500.                +--------+ +--------+ +--------+
  2501.                | stand1 | | stand2 | | stand3 |
  2502.                +--------+ +--------+ +--------+
  2503.  
  2504. Support example:
  2505. Examples/Objects/Table.
  2506.  
  2507. In the example, we named the objects so that the name of an object
  2508. described the purpose of it, to make the identification easier. If your
  2509. model includes several objects of the same name, you can identify them
  2510. according to the order you created them; the first object you created
  2511. is the topmost in the select window.
  2512.  
  2513. If you don't remember which one you created first, there is one further
  2514. way to select primitives: <SHIFT><DRAG> a box containing the points of
  2515. desired primitives. This operation pushes the points included in the drag
  2516. box onto the vector stack of REAL 3D. If dragging was successful, you
  2517. should see the points marked with a cross symbol. Then press <RAM><Space>,
  2518. and selection happens.
  2519.  
  2520. You can check which object is the active one by hitting <Help> key. The
  2521. wireframe of the selected object will flash.
  2522.  
  2523. In the next paragraph, we will modify the table in different ways so you
  2524. can get some idea of REAL 3D's powerful hierarchical object oriented
  2525. construction method.
  2526.  
  2527. 1.7 MODIFYING
  2528.  
  2529. Now you already know how to use some modification functions. You also know
  2530. that modifications are done to the selected objects. You can select any
  2531. part of the table and modify it, regardless of the complexity of the
  2532. modification.
  2533.  
  2534. We can continue to modify the table of the previous example (You can load
  2535. the file Project/Project/Replace Examples/Objects/Table).
  2536.  
  2537. To move the brace of the table:
  2538.  
  2539. 1. Select "brace".
  2540.  
  2541. 2. Choose the menu Modify/Linear/Move and move the brace.
  2542.  
  2543. To move the whole base:
  2544.  
  2545. 3. Select "base".
  2546.  
  2547. 4. Hit the key "m" (move) which is the default keyboard short-cut for Move
  2548.    function and move the base.
  2549.  
  2550. If the table seems to be too high:
  2551.  
  2552. 5. Select the whole "table".
  2553.  
  2554. 6. Select Modify/Linear/Stretch, <LMB> click on the top left corner of the
  2555.    table, then <LMB> click on the bottom right corner of the table. Then
  2556.    move the mouse until the shape is desired.
  2557.  
  2558.                              - TUTORIAL 1.10 -
  2559.  
  2560. You can also rotate the table with the Modify/Linear/Rotate function, or
  2561. change the size of it using Modify/Linear/Size function. The Mirror
  2562. function inverts the object with respect to an axis defined by you.
  2563.  
  2564. If the result of a modification was unexpected:
  2565.  
  2566. - Select Extras/Undo or hit <RAM>u key.
  2567. - The Undo-function restores the situation to the situation before the
  2568.   latest action.
  2569.  
  2570. Actually, the depth of undo buffer is 3 by default, so you can undo three
  2571. steps backwards. It is possible to change the undo depth to other values
  2572. using the Settings/Undo/Set depth function, but remember that the greater
  2573. the value, the more memory is required.
  2574.  
  2575. You can also relocate the table by choosing Modify/Linear/Move COG. This
  2576. function moves the target to a given point using the so called COG point
  2577. of the object (COG = Center of Gravity). Every primitive you create has
  2578. some default value for COG. For example, the COG of a ball is its middle
  2579. point. You can redefine the COG point by the function Modify/Properties/
  2580. COG.
  2581.  
  2582. To move a stand of the table to the bottom left corner of the window:
  2583.  
  2584. 1. Select a stand.
  2585.  
  2586. 2. Choose Modify/Linear/Move COG.
  2587.  
  2588. 3. Click the view near the desired place.
  2589.  
  2590. 4. Move the pointer to the desired place and click the left button.
  2591.  
  2592. To modify the color of the table cover:
  2593.  
  2594. 1. Select the cover.
  2595.  
  2596. 2. Open the palette window (<RAM>p).
  2597.  
  2598. 3. Select the palette window menu Project/Fetch. The color of the cover
  2599.    is read and displayed in the color square above the OK gadget. Also
  2600.    the RGB sliders are adjusted accordingly.
  2601.  
  2602. 4. Modify the red component to 100 by moving the R-slider.
  2603.  
  2604. 5. Click OK. This changes the current color.
  2605.  
  2606. 6. Activate the view window and select Modify/Properties/Color. This
  2607.    writes the modified color back to the cover.
  2608.  
  2609. Move, Rotate, Color and Stretch are functions which affect only the
  2610. physical structure of the table. Next we turn to functions which change
  2611. the hierarchical structure. In fact, you already know some, namely the
  2612. Delete and Duplicate functions.
  2613.  
  2614. The hierarchical structure of the table created in the previous example
  2615. seems to be quite a logical one. The stands are a part of the base, but
  2616. the cover is not. Anyway, you can move the parts of the table in the
  2617. hierarchy tree, just as you can move files and directories in DOS to
  2618. new directories.
  2619.  
  2620. If you want to move the cover to be a part of the base:
  2621.  
  2622. 1. Select "cover".
  2623.  
  2624. 2. Choose Modify/Structure/Cut.
  2625.  
  2626. 3. Double-click the level "base" on select window, so it becomes the
  2627.    current level.
  2628.  
  2629. 4. Choose Modify/Structure/Paste.
  2630.  
  2631. You have modified the hierarchy of your table to be as follows:
  2632.  
  2633.      Root
  2634.         table
  2635.         base
  2636.           stand1
  2637.           stand2
  2638.           brace
  2639.           cover
  2640.  
  2641.                              - TUTORIAL 1.11 -
  2642.  
  2643. If you don't want any part of the table to belong to the base:
  2644.  
  2645. 1. Multi-select stand1, stand2, brace and cover.
  2646.  
  2647. 2. Choose Modify/Structure/Cut.
  2648.  
  2649. 3. Double-click the name "base" on top of the select window; the window
  2650.    changes the current level to be the parent level, "table".
  2651.  
  2652. 4. Choose Modify/Structure/Paste.
  2653.  
  2654. If you want to move the base now, you won't move any of the parts of the
  2655. table. The base is now empty, and the structure of the table is quite
  2656. peculiar.
  2657.  
  2658.      Root
  2659.         table
  2660.           stand1
  2661.           stand2
  2662.           brace
  2663.           cover
  2664.         base
  2665.  
  2666. As a final example of modifying object hierarchy, we consider the use of
  2667. two select windows. As it has been mentioned, each select window has its
  2668. private current level, which becomes the global current level when you
  2669. activate it. You can use this feature in the following way:
  2670.  
  2671. 1. Open a second select window.
  2672.  
  2673. 2. Set the current level of the original select window to "base".
  2674.  
  2675. 3. Set the current level of the new select window to "table".
  2676.  
  2677. 4. Activate the new select window.
  2678.  
  2679. 5. Use Create/Visibles/Sphere to create a new primitive. It appears under
  2680.    "table" level in hierarchy.
  2681.  
  2682. 6. Activate original select window and create another sphere. It appears
  2683.    under "base" in hierarchy.
  2684.  
  2685. 7. Drag multi-select the objects under "table" using the new select
  2686.    window, which still displays those objects.
  2687.  
  2688. 8. Select Modify/Hierarchy/Cut.
  2689.  
  2690. 9. Activate the old select window.
  2691.  
  2692. 10. Select Modify/Hierarchy/Paste. The objects are pasted under "base".
  2693.  
  2694. As you see, you can use multiple select windows to quickly access
  2695. different parts of the hierarchy.
  2696.  
  2697. 1.8 SAVING AND LOADING
  2698.  
  2699. An object you have created, or any part of it, can be saved on disk and
  2700. later be recalled to be used again.
  2701.  
  2702. For example, to save the table you created before to the directory
  2703. "Objects" of drawer R3D2:
  2704.  
  2705. 1. Select "table".
  2706.  
  2707. 2. Choose Project/Objects/Save.
  2708.  
  2709. A device will then appear on the screen. With the file requester, you
  2710. can define all the names and paths that REAL 3D needs to load and save
  2711. data. In the device, you can see a DOS directory.
  2712. Using the mouse, you can select any of the names moving in the directory
  2713. tree until you have reached the directory you want. Then you can type the
  2714. name to save the object with to the "File" field in the lower part of the
  2715. device.
  2716.  
  2717. Naturally, you can also select an existing file. In this case, the old
  2718. contents of the file will be overwritten. Similarly , you can type any
  2719. name in the file field with its directory path regardless of which
  2720. directory is shown in the device.
  2721.  
  2722. Continue saving with the following actions:
  2723.  
  2724.                              - TUTORIAL 1.12 -
  2725.  
  2726. 3. Click the drawer name "Objects" on the file selector, unless "Objects"
  2727.    is already displayed (check the drawer field).
  2728.  
  2729. 4. REAL 3D already proposes the name "table" in the File field, so choose
  2730.    OK.
  2731.  
  2732. In the same manner, you may want to insert the name and object "table"
  2733. in a scene from the "Objects" directory of r3d2:
  2734.  
  2735. 1. Make the object in which you want to insert the table (for example a
  2736.    garden furniture set) the current level.
  2737.  
  2738. 2. Choose Project/Objects/Insert.
  2739.  
  2740. 3. Select the drawer "objects" and the file "table" from the file
  2741.    requester and choose OK.
  2742.  
  2743. If the object is found, it will become a part of the garden furniture set.
  2744. The table is now the active object, so you can modify it in various ways,
  2745. for example, move it to an appropriate location.
  2746.  
  2747. Note:
  2748. If you save on object to an existing file name, REAL 3D gives a warning
  2749. to guard against mistaken overwriting, unless the Settings/General/
  2750. Confirm_save gadget is deactivated.
  2751.  
  2752. The third entry in the Project/Objects menu: Replace, replaces the whole
  2753. object hierarchy starting from root with the new one loaded from the disk.
  2754. Where as Insert, inserts the loaded object to the old object structure.
  2755.  
  2756. Most other IO menus include a similar group of three functions: Insert,
  2757. Replace and Save. They work in a similar way: Save is for saving to disk,
  2758. Insert adds new data to the current project, and Replace replaces the
  2759. current data with the one loaded from disk.
  2760.  
  2761. Note:
  2762. REAL 3D binary format is an IFF type collection of different data
  2763. sections. This means that a file can contain both objects and materials,
  2764. but you can only load the objects from it using Objects/Replace or
  2765. Insert. When replacing Projects, you can define the sections which you
  2766. want replaced from the file.
  2767. For example, if you Project/Project/Replace from a file which does not
  2768. contain an environment section, you do not lose your current user
  2769. interface definition. Also, you can specify which sections you want
  2770. replaced by using Project/Project/Replace Sections. When you create
  2771. objects, it is advisable to compose them of reasonable sub-objects, which
  2772. can be saved to appropriate sub-directories. Although this means more
  2773. work in the beginning, it does allow you to create libraries of reusable
  2774. objects.
  2775.  
  2776. 1.9 VISIBLES
  2777.  
  2778. The examples presented earlier already have explained how to create some
  2779. basic visibles. The main classes of visibles are:
  2780.  
  2781. - Flat planar visibles
  2782. - Polygonal visibles
  2783. - Cylinders
  2784. - Cones
  2785. - Ellipsoids
  2786. - Hyperbolic visibles
  2787.  
  2788. REAL 3D includes a variety of tools for creating these visibles. Also,
  2789. tools for creating sector versions of most visibles are included. Thirdly,
  2790. the so called compound tools combine visibles to obtain more complicated
  2791. shapes.
  2792.  
  2793. This chapter introduces some new visibles. The rest are described in the
  2794. reference section.
  2795.  
  2796.                              - TUTORIAL 1.13 -
  2797.  
  2798.  
  2799. 1.9.1 Polygon/
  2800.       Polyhedron/
  2801.       Polymids
  2802.  
  2803. With the polygon tool, you can create plane polygons. Use it in the
  2804. following way:
  2805.  
  2806. 1. Select Create/Visibles/Polygon.
  2807.  
  2808. 2. Use the left mouse button to add new edge points when drawing a
  2809.    polygon.
  2810.  
  2811. 3. You may undo the points one by one using <Del> key.
  2812.  
  2813. 4. Right mouse button ends the function.
  2814.  
  2815. 5. <Space> key cancels the function. Note that the edge curve of the
  2816.    polygon is closed automatically.
  2817.  
  2818. Creating a polyhedron (extruded polygon) happens exactly in a similar
  2819. way. Polymids are slightly different. A Polymid is a pyramid type of shape
  2820. with a sharp top peak.A Cut polymid is the same shape with a cut top. Use
  2821. the latter in the following way:
  2822.  
  2823. 1. Select the menu Create/Visibles/Cut polymid.
  2824.  
  2825. 2. First define the intersection shape of the object, in other words, the
  2826.    shape of the bottom plane of the object. You can do this in the same
  2827.    way as with the polygon tool. Use the right mouse button to end the
  2828.    shape definition.
  2829.  
  2830. 3. Click the left mouse button in the position to which you want to place
  2831.    the first point of the polygon which forms the top cover of the object.
  2832.  
  2833. 4. Now you can size the top cover by moving the mouse, and when the size
  2834.    is suitable, click the left button.
  2835.  
  2836. 1.9.2 Sector Visibles
  2837.  
  2838. As an example of sector visibles, we will create a cylinder sector, which
  2839. is an useful shape for say 3D pie charts.
  2840.  
  2841. 1. Select Create/Sectors/Cylinder.
  2842.  
  2843. 2. Click in the center point of the cylinder.
  2844.  
  2845. 3. Move the mouse until the distance from the center point is correct.
  2846.    Also, the line which the function draws defines one side of the sector,
  2847.    so direct it accordingly. Then <LMB> click again.
  2848.  
  2849. 4. Now rotate the mouse counter clockwise until the sector angle is
  2850.    desired. Then <LMB> click.
  2851.  
  2852. 1.10 COMPOUND TOOLS
  2853.  
  2854. REAL 3D includes a set of special tools to ease creation of certain types
  2855. of objects, such as objects turned in a lathe. Objects which consist of
  2856. several primitives can be created fast and easily with these special
  2857. tools.
  2858.  
  2859. Compound tools have some advantages over freeform based creation methods:
  2860.  
  2861. - They perform certain shape constructions very easily and quickly
  2862.  
  2863. - They produce memory efficient models
  2864.  
  2865. - Compound tool objects are fast to render
  2866.  
  2867. - True volume representation is produced
  2868.  
  2869. - Excellent rendering quality
  2870.  
  2871. The disadvantage is the inherent geometric restrictions, although this is
  2872. partly compensated for by the large number of different compound tools
  2873. available.
  2874.  
  2875.                              - TUTORIAL 1.14 -
  2876.  
  2877. In the following, some compound tools are introduced. The rest work in
  2878. quite a similar manner. Exact details can be found in the reference
  2879. section of the manual.
  2880.  
  2881. 1.10.1 Lathe
  2882.  
  2883. To use the lathe tool:
  2884.  
  2885. 1. Choose Create/Compound Tools/Lathe.
  2886.  
  2887. 2. Define the direction of the axis of the lathe by selecting two
  2888.    spatial points with the mouse.
  2889.  
  2890. 3. Then click the starting point and define the direction of the surface
  2891.    at that point by drawing a line segment. Click when the direction is
  2892.    suitable.
  2893.  
  2894. 4. Now you can shape a curve. When the shape is suitable, click the left
  2895.    mouse button and shape the next curve.
  2896.  
  2897. 5. If you want to make a sharp edge, use right mouse button to cancel the
  2898.    current curve shaping and then define the new direction.
  2899.  
  2900. 6. Sometimes the smooth profile curve breaks because of precision problems
  2901.    in calculations. This can be avoided by defining the shape in shorter
  2902.    segments.
  2903.  
  2904. 7. When the required shape has been defined, turning can be terminated by
  2905.    pressing the right mouse button twice.
  2906.  
  2907. Figure T1-10: Candlesticks turned in a lathe.  (PICTURE: T1-10)
  2908.  
  2909. 1.10.2 Tube tools
  2910.  
  2911. With the tube tools, you can create a continuous tube. The tools can be
  2912. used, for example, for creating 3D fonts.
  2913.  
  2914. The tube tools are divided into sub-classes according to the following
  2915. properties:
  2916.  
  2917. - Rounded edges/sharp edges ("rounded" option)
  2918.  
  2919. - Constant radius/varying radius ("Conical" option)
  2920.  
  2921. - Circular/rectangular intersection shape ("Circular/"Rectangular")
  2922.  
  2923. - Automatic subdivision/no subdivision ("Subdivided" option)
  2924.  
  2925. The tube tools use various primitives like cylinders, polyhedrons, and
  2926. spheres to create the tube you define.
  2927.  
  2928. For example, to use the rounded circular tube tool:
  2929.  
  2930. 1. Choose Create/Compound Tools/Rounded Circular.
  2931.  
  2932. 2. Define the diameter of the tube by shaping a circle.
  2933.  
  2934. 3. Draw the tube in space as long as you want and then cut it with the
  2935.    <RMB> button.
  2936.  
  2937. As a second example of tube tools, we consider the Conical tube. With
  2938. this tool it is possible to create spheres connected with cones. The
  2939. result is a tube with a changing radius and rounded joints.
  2940.  
  2941. For example, this tool is suitable for creating a robot finger.
  2942.  
  2943. 1. Select Create/Compound Tools/Conical
  2944.  
  2945. 2. Shape as many circles as needed. These circles define the joints
  2946.    of a finger.
  2947.  
  2948. 3. End the joint definition by clicking the <RMB> button.
  2949.  
  2950.                              - TUTORIAL 1.15 -
  2951.  
  2952. If you try the same with Conical Subdivided tube tool, you get more
  2953. joints and smoother result. Try the previous example with the subdivision
  2954. factor 5, just to see the difference.
  2955.  
  2956. Figure T1-11: The Tube Tools.  (PICTURE: T1-11)
  2957.  
  2958. Top row: (IN PICTURE)
  2959.      Circular Subdivided, Rounded Circular Subdivided,
  2960.      Sharp Circular, Rounded Circular.
  2961.  
  2962. Second row: (IN PICTURE)
  2963.      Conical, Conical Subdivided.
  2964.  
  2965. Bottom row: (IN PICTURE)
  2966.      Rectangular, Rectangular Subdivided, Rectangular Conical,
  2967.      Rectangular Conical Subdivided.
  2968.  
  2969. 1.10.3 Rounded Polygons and Polyhedrons
  2970.  
  2971. Compound tools include functions for creating polygons and polyhedrons
  2972. with rounded corners. They are handy for example for logotype creation.
  2973.  
  2974. You can use all the four tools in a similar way as when you created the
  2975. polygon, but the tool automatically rounds the corners. "Rounded" tools
  2976. use fixed maximal rounding radius, whereas "Ellipsed" tools round the
  2977. corners all the way to the middle of each edge. The following figure
  2978. shows example shapes created with the tools.
  2979.  
  2980. Figure T1-12: Rounded Polyhedron (left) and Ellipsed Polyhedron (right).
  2981.               (PICTURE: T1-12)
  2982.  
  2983. 1.10.4 Object-Pixel Tool
  2984.  
  2985. The object-pixel tool is a very powerful link between two and three
  2986. dimensional computer graphics. The idea is to easily and quickly obtain
  2987. complex 3D solid objects by replacing the two dimensional pixels of a
  2988. picture with some three dimensional objects, such as spheres.
  2989. When using the pixel tool, the user can define which object replaces
  2990. the pixels. Only the pixels which have some other color than the
  2991. background color (color 0) are replaced, and the colors of objects
  2992. created are the same as the colors of the pixels. With 24 bit and HAM
  2993. images, all the pixels are replaced.
  2994.  
  2995. For example, you can create 3D text using the usual 2D fonts. There is
  2996. a wide variety of different fonts available, and furthermore, there are
  2997. an infinite number of ways to define the object with which the pixels
  2998. are replaced. For the creative user, pixel tool offers an excellent
  2999. method to produce 3D pictures and animations. It is especially handy
  3000. for producing particle groups for particle animations (text which is
  3001. exploding etc.).
  3002.  
  3003.                              - TUTORIAL 1.16 -
  3004.  
  3005. To create text with the pixel tool:
  3006.  
  3007. 1. Start a paint program, choose a suitable font, write the word "Real",
  3008.    define a brush containing the word and then save the brush for
  3009.    example, to the RAM disk.
  3010.  
  3011. 2. Create, for example, a small sphere in REAL 3D. Make sure that it
  3012.    is selected.
  3013.  
  3014. 3. Choose Create/Compound Tools/Object-Pixel Tool. Now the file selector
  3015.    is displayed, and you can select the brush you saved to ram disk.
  3016.  
  3017. 4. Next, you can define the size and location of the object which will
  3018.    be created by shaping a rectangle in a view window.
  3019.  
  3020. 5. When the object is created, you probably don't need the original
  3021.    sphere any longer, so delete it.
  3022.  
  3023. Figure T1-13: Text Created with Object-Pixel Tool.  (PICTURE: T1-13)
  3024.  
  3025. Note:
  3026. Pixel tool tends to create a "heavy" object. For example, in a paint
  3027. program a brush of 30 times 30 pixels looks very small, but it includes
  3028. 900 pixels. A slightly larger brush, say 80 times 80 pixels, includes
  3029. 6400 pixels already. This may lead to memory problems.
  3030.  
  3031. 1.11 LIGHT SOURCES
  3032.  
  3033. A light source is a primitive which radiates light of its own color.
  3034. If the primitive is black, it does not radiate light at all. A white
  3035. object radiates all the main components (R,G,B) of light in the same
  3036. amounts.
  3037.  
  3038. In real life, it is usually very difficult to observe objects in
  3039. lighting which has only one wavelength. Also, there is not any
  3040. material which would reflect only one wavelength . In REAL 3D, all this
  3041. is possible, so you should be careful when selecting the colors of light
  3042. sources. For example, a totally red object is not visible at all under
  3043. blue lighting, because a red object does not reflect any blue light.
  3044. A violet object looks red under yellow lighting.
  3045.  
  3046. Usually, it is advisable to create white light sources, so all objects
  3047. will be rendered in their "true" colors. Although the number of light
  3048. sources is unlimited, they should not be used indiscriminately. The time
  3049. taken by rendering is greatly dependent on the number of light sources.
  3050.  
  3051. In the next example, we will test different light sources. The example
  3052. includes a cylinder floating above a rectangle (floor), and two light
  3053. sources casting shadows onto the floor.
  3054.  
  3055. 1. Reset the view window by activating it and then pressing <RAM>e.
  3056.  
  3057. 2. Take a top view by hitting <RAM>z.
  3058.  
  3059. 3. Create a rectangle (Create/Visibles/Rectangle), almost filling the
  3060.    whole view.
  3061.  
  3062. 4. Create a cylinder (Create/Visibles/Cylinder) to the middle of the
  3063.    rectangle.
  3064.  
  3065. 5. Select a suitable current color for the light sources using palette
  3066.    window. Pure white (255,255,255) is a good choice.
  3067.  
  3068.                              - TUTORIAL 1.17 -
  3069.  
  3070. 6. Choose Create/Light-sources/Point and click on the left side of the
  3071.    cylinder.
  3072.  
  3073. 7. Choose Create/Light-sources/Wall and shape a small square to the right
  3074.    side of the cylinder.
  3075.  
  3076. 8. Go back to front view by hitting <RAM>x.
  3077.  
  3078. 9. All the objects lie at the same level. Select the rectangle and move
  3079.    it to the bottom, select cylinder and move it above the rectangle.
  3080.    Select the light sources and move them well above the cylinder.
  3081.  
  3082. 10. Hit <RAM>s to get the Render settings requester. When it opens, set
  3083.     Mode to Normal and click OK.
  3084.  
  3085. 11. Adjust the viewing angle with the cursor keys and hit <RAM>r to
  3086.     render.
  3087.  
  3088. Now you should see the shadows of the cylinder on the floor. The edges
  3089. of the shadows from both lights appear both to be sharp. Do this to see
  3090. a soft shadow:
  3091.  
  3092. 12. Open render setting requester again (you can do it while the program
  3093.     is still rendering!) and adjust the Lightsamples slider at the right
  3094.     side of the requester to the value one. Then hit OK.
  3095.  
  3096. 13. Hit <RAM>r to re-render the view.
  3097.  
  3098. Support example:
  3099. Examples/Objects/lightsources
  3100.  
  3101. This time, one of the shadows has a smooth edge. Rendering is much slower
  3102. (about 4 times), but probably the extra realism is worth the time penalty.
  3103.  
  3104. You can adjust the size of the smooth area on the shadow edge by
  3105. increasing the size of the wall light source. Nevertheless, you may then
  3106. have to increase Lightsamples level respectively, which again slows down
  3107. the rendering. So, the smoother the shadows, the more calculations and
  3108. rendering time is required.
  3109.  
  3110. Figure T1-14: Light Source Test Scene  (PICTURE: T1-14)
  3111.  
  3112. 1.11.1 The Brightness of Light Sources
  3113.  
  3114. When you create light sources, you don't have to worry about their
  3115. brightness; the program will scale their intensities to a suitable level,
  3116. and fine tuning can be done by settings of the solid model. You can set
  3117. the relative brightness of various light sources by giving them suitable
  3118. colors. A lamp having lower values for RGB components has a lower light
  3119. intensity than a lamp which has higher RGB values.
  3120. These differences will be preserved in automatic scaling. The automatic
  3121. scaling of light intensities can be thought of as being analogous to the
  3122. automatic exposure functions of a camera, where the exposure level is
  3123. based on the overall brightness of the picture.
  3124.  
  3125. Notice that if you position a light source near an object, there will be
  3126. a great difference in light level (in other words contrast is high).
  3127. If you illuminate the object from a distance, the light falling on the
  3128. object will be much more evenly distributed.
  3129.  
  3130. A good example of this phenomenon is the comparison of sunlight and lamp
  3131. light. If you place a lamp near an object to act as a spot light, and
  3132. another further away to give ambient light, the latter should have much
  3133. higher intensity than the former to produce any visible effect.
  3134.  
  3135.                              - TUTORIAL 1.18 -
  3136.  
  3137. Light sources don't show directly in shaded pictures. So, if you want to
  3138. see lamps or reflections of the light source on reflecting surfaces, you
  3139. must put a cover made of, say, matt glass around the light source.
  3140. This is just like in the real world!
  3141.  
  3142. You may find it useful to save some suitable light sources as objects to
  3143. disk so light sources can be brought to use as the need arises.
  3144. Nevertheless, if you want to produce a ray traced picture of an object,
  3145. you don't always have to create light sources. The rendering unit of
  3146. REAL 3D includes some fast ray tracing modes in which one light source
  3147. is created automatically. For more information, see the chapter on
  3148. Rendering.
  3149.  
  3150. 1.12 MACROS
  3151.  
  3152. The macro facility, an important feature of REAL 3D, is very useful when
  3153. you must execute the same modifying operations to a large number of
  3154. objects. A macro is a series of modification operations which the user
  3155. can define to best suit his/her needs. Macros can be stored to hard disk,
  3156. bound to keyboard short-cuts, and made into tool window icons. They can
  3157. later be executed on any object.
  3158.  
  3159. Macro definition is started by the operation Record. The current macro,
  3160. usually automatically stored as t:macro.rpl, is deleted. After this, all
  3161. these new operations are stored in the t:macro.rpl file. These operations
  3162. include all functions of Modify/Linear, Modify/Structure, and Modify/Bend
  3163. functions.
  3164.  
  3165. When the macro has been fully defined, the recording is stopped by
  3166. selecting Record again.
  3167.  
  3168. An example of macro definition:
  3169.  
  3170. 1. Create an object.
  3171.  
  3172. 2. Choose Project/Macros/Record. A checkmark will appear in the menu
  3173.    showing that macro recording is active.
  3174.  
  3175. 3. Flatten the object with the Stretch function.
  3176.  
  3177. 4. Rotate the object with the Rotate function.
  3178.  
  3179. 5. Move the object with the Move function.
  3180.  
  3181. 6. Choose Projects/Macro/Record again.
  3182.  
  3183. Now you have defined a macro which consists of three modifying operations.
  3184. To execute the macro:
  3185.  
  3186. 1. Select the object to modify.
  3187.  
  3188. 2. Choose Project/Macros/Execute Current.
  3189.  
  3190. If you want to execute the macro 20 times:
  3191.  
  3192. 1. Select the object to modify.
  3193.  
  3194. 2. Choose Project/Macros/Repeat Current.
  3195.  
  3196. 3. Type 20 into the requester, then click OK.
  3197.  
  3198. This is a very powerful method for creating symmetrical objects. As an
  3199. example, let us create a set of ball bearings:
  3200.  
  3201. 1. Create a sphere with a suitable size and place it near the top of the
  3202.    view window.
  3203.  
  3204. 2. Select menu Project/Macro/Record.
  3205.  
  3206. 3. Modify/Structure/Duplicate the sphere.
  3207.  
  3208. 4. Modify/Linear/Rotate the sphere around the center point of the view.
  3209.  
  3210. 5. Select menu Project/Macros/Record.
  3211.  
  3212. 6. Select menu Project/Macros/Repeat Current.
  3213.  
  3214. 7. Estimate the number of spheres needed to form the entire ball bearing
  3215.    and enter this value.
  3216.  
  3217.                              - TUTORIAL 1.19 -
  3218.  
  3219. Figure T1-15: Ball Bearing Macro  (PICTURE: T1-15)
  3220.  
  3221. Spread macro is another useful macro feature. It spreads the macro over
  3222. the selected objects, incrementing the number of macro repetitions by one
  3223. after processing each selected object. Try the following with the spheres
  3224. you created in the example above:
  3225.  
  3226. 1. Multi-select all the spheres.
  3227.  
  3228. 2. Select Modify/Linear/Move COG, and click twice in the middle of the
  3229.    view. The result is that all the spheres are collected to the same
  3230.    position.
  3231.  
  3232. 3. Select Project/Macro/Record.
  3233.  
  3234. 4. Still having all the spheres multi-selected, move the spheres to the
  3235.    right, half the diameter of a sphere.
  3236.  
  3237. 5. Select Project/Macro/Record to end the macro.
  3238.  
  3239. 6. Select Project/Macro/Spread Current.
  3240.  
  3241. If you repeated the steps correctly, you got a horizontal row of spheres.
  3242.  
  3243. You can save the macro by using Project/Macros/Current to Named function
  3244. (or by copying/renaming t:macro.rpl with a suitable name). Current macro
  3245. is just an ascii file stored in system t: directory. It is a small RPL
  3246. program, and you can edit it with any text editor.
  3247.  
  3248. You can also pick any RPL program/macro and execute it using the menu
  3249. Project/Macro/Execute Named. There is also Named_to_Current function,
  3250. which makes a given macro the current one, so you can use it with the
  3251. repeat and spread functions.
  3252.  
  3253.                              - TUTORIAL 1.20 -
  3254.  
  3255. Chapter 2 THE ENVIRONMENT
  3256. -------------------------
  3257.  
  3258. 2.1 ASYNCHRONOUS ACTION
  3259.  
  3260. REAL 3D makes extensive use of the Amiga multitasking operating system.
  3261. This helps make using the software more comfortable, faster, and
  3262. consequently more productive.
  3263.  
  3264. The user interface is designed using the "zero wait state" principle:
  3265. even if the user starts a time consuming process, the program continues
  3266. to monitor the users actions and gives immediate responses. In REAL 3D,
  3267. this happens by the asynchronous execution of multiple tasks.
  3268.  
  3269. The following test demonstrates this:
  3270.  
  3271. 1. Use Create/Compound tools/Circular subdivided to create a tube; use
  3272.    at least 10 clicks to define the tube shape and use 10 subdivisions.
  3273.    This should create a rather complex object.
  3274.  
  3275. 2. Activate a view and select View/Render/Window. The program starts
  3276.    shading the window.
  3277.  
  3278. 3. Now immediately select another creation function; create a sphere,
  3279.    and start shaping it in the view which is still rendering.
  3280.  
  3281. It is possible to initiate new tasks even though the program is redrawing
  3282. the window. Another useful test can be opening more views and then
  3283. selecting Extras/Refresh All/Ray Trace: Views are rendered independently
  3284. of each other.
  3285.  
  3286. If you try Modify/Linear/Move to move the tube, you will see another zero
  3287. wait state feature: even though the wireframe is complex, REAL 3D responds
  3288. to your mouse moves easily.
  3289.  
  3290. Note that certain functions can momentarily block your actions. For
  3291. example, IO functions (saving and loading). Secondly, modal requesters,
  3292. such as render and drawing settings block the view where they are opened,
  3293. but other windows are still fully available. For example, if you are
  3294. defining the render settings for a View window and you need to open the
  3295. Palette window, activate a Select window and open the Palette window from
  3296. it.
  3297.  
  3298. One very useful technique which utilizes asynchronous action is material
  3299. editing. When testing materials, you can open a material window, edit a
  3300. material, and then activate the rendering of a view without closing the
  3301. material editor. While the rendering proceeds, you can edit the material
  3302. library and restart the rendering as soon as the changes are made.
  3303. Especially useful is the technique using "Box" rendering (see the chapter
  3304. "Rendering") where you can very quickly and interactively test critical
  3305. materials in their correct environments.
  3306.  
  3307. 2.2 SCREENS
  3308.  
  3309. REAL 3D supports all Amiga display modes for the user interface display.
  3310. If you select the menu Project/Environment/Open screen, a requester is
  3311. displayed which will include the, display modes which are supported by
  3312. your workstation. You can adjust your display with the folloWing options:
  3313.  
  3314. The Color gadget slider allows you to select the number of colors to be
  3315. used for the screen display. The minimum value 1 allows two colors, and
  3316. the current maximum value of 8 allows 256 (or more in HAM) colors.
  3317.  
  3318.                              - TUTORIAL 2.1 -
  3319.  
  3320. The greater the depth, the more chip memory the display requires. Also
  3321. the display updating slows as the screen depth increases, but on the other
  3322. hand, shading quality is improved.
  3323.  
  3324. Width and Height gadgets define the size of the screen in pixels. When you
  3325. select a screen mode, the dimensions are updated automatically to the
  3326. system default values, but you can modify them freely. If you specify
  3327. larger than default dimensions, a virtual screen is automatically opened.
  3328.  
  3329. You can also give a name to the screen you open. The name can be used for
  3330. example in the Animation window when rendering animations; you can specify
  3331. which screen should be saved using the name.
  3332.  
  3333. Furthermore, the HAM gadget and overscan selectors are included. Note that
  3334. not all the mode combinations are possible at the same time. You will get
  3335. an error message if a mode is incompatible.
  3336.  
  3337. REAL 3D can operate on multiple screens simultaneously. The user can
  3338. freely create a multiple screen configuration. For example, you can have
  3339. a HAM screen open for color shading and a fast four color HIRES screen
  3340. for editing, with the ability to easily jump between them.
  3341.  
  3342. You can edit the screen palette using the Environment/Screen Palette
  3343. function. The palette requester includes two built-in palette options:
  3344. grey scale and color scale palettes. They are both optimized for ray
  3345. trace rendering, but you can adjust them slightly without loosing shading
  3346. quality. Also, you can re-arrange the order of the colors freely. Ray
  3347. trace shading with color scale palette on non-HAM screens works properly
  3348. only if the screen depth is at least 6 (AGA machines). If you use the
  3349. color palette, you have to activate the Render settings/Color shading
  3350. menu function in order to get proper results. You can change certain
  3351. screen properties using the screen window of REAL 3D; for further
  3352. details, see the reference manual.
  3353.  
  3354. 2.3 VIEW WINDOWS
  3355.  
  3356. The main purpose of the View window is visualization (seeing) the
  3357. properties and the shapes of the models created by the user. Secondly,
  3358. Views input coordinate data from the mouse in an intuitive way, making it
  3359. easy to construct and modify objects. The whole modelling process can also
  3360. be entered using written instructions in a RPL window, but the approach is
  3361. much less intuitive. Using RPL written input can provide you with exact
  3362. modelling precision if need be.
  3363.  
  3364. REAL 3D supports a variety of different Amiga window types including
  3365. borderless and superbitmap windows. Their usage is not restricted; the
  3366. environment can be freely configured according to your personal
  3367. preferences.
  3368.  
  3369. Some suggestions:
  3370.  
  3371. - The borderless window, because it fill the whole screen, is often used
  3372.   for the final rendering of animations.
  3373.  
  3374. - The superbitmap window can be used for rendering selected parts from the
  3375.   scene, only the visible part of the window is shaded at once.
  3376.  
  3377. - The window borders of normal Views can be removed using Project/Windows/
  3378.   No Gadgets function. This gives more work space.
  3379.  
  3380.                              - TUTORIAL 2.2 -
  3381.  
  3382. 2.3.1 Projection Types
  3383.  
  3384. For each View window, you can define the so called projection type. This
  3385. type defines how the shape of the model is rendered to the window.
  3386.  
  3387. If the type is Parallel, the scene is drawn as if it was seen from an
  3388. infinite distance. When using this projection, you cannot see any
  3389. perspectivity in objects, and visualizing the depth direction (the
  3390. direction from your "eyes" toward the objects) can be more difficult than
  3391. when using the perspective projection. Nevertheless, accurate modelling
  3392. is easier. For example, a front view of a cube in parallel projection is
  3393. a rectangle, and it is easy to align other objects with the sides of the
  3394. cube regardless of their positions in the depth direction.
  3395.  
  3396. If the type is Perspective, the objects can be seen in a natural
  3397. perspective way which corresponds to normal cameras. In this projection,
  3398. the View window area corresponds to the film in the camera; the film is
  3399. perpendicular to the line from the camera to the point of focus of the
  3400. camera.
  3401.  
  3402. The perspective projection may be more appropriate in intuitive, less
  3403. accurate modelling such as creating compositions from the camera view.
  3404. It is normally used when the final images are rendered. Note that the
  3405. rendering engine supports the rendering of both types of projections;
  3406. the parallel projection the faster of the two to render.
  3407.  
  3408. 2.3.2 Input &Output Planes
  3409.  
  3410. The term "output plane" means the image plane to which the rendering
  3411. algorithms project the shape of the model. You can consider the
  3412. rectangular surface of the View window to be this plane; it is always
  3413. perpendicular to the direction you are looking at through the View
  3414. window in question. Each View window has its own private output plane
  3415. definition, which can be also described as the "internal camera"
  3416. definition of the View. This is presented in more detail in the next
  3417. chapter 2.3.3.
  3418.  
  3419. The term "input plane" means the plane in which the mouse coordinates
  3420. run. For example, the input plane can be the XZ plane passing through
  3421. the origin (the normal horizontal "ground" surface). When you move the
  3422. mouse, the Y coordinate remains zero, and only X and Z vary.
  3423. An intuitive way to describe this is: if an object is lying on the ground
  3424. and the ground is the input plane (please forget the fact that the earth
  3425. is actually spherical), you cannot lift an object above the ground by
  3426. applying the Move function. You can just slide the object along the
  3427. ground.
  3428.  
  3429. The input and output planes can be the same or separate planes. In the
  3430. previous "ground surface" example, the input and output planes coincide
  3431. when you look at the ground directly from above or from below. But you
  3432. can also use a perspective arbitrary view (perhaps the final camera
  3433. view) while moving the object along the ground surface.
  3434.  
  3435. Normally, both planes are automatically connected to each other so that
  3436. when you adjust one (e.g. using cursor keys), the other follows. The
  3437. following example shows how to disconnect them.
  3438.  
  3439.                              - TUTORIAL 2.3 -
  3440.  
  3441. 1. Activate the View, hit <RAM>e and click in the middle of the View to
  3442.    move the hot-point (set by mouse click) near the origin. The hot-
  3443.    point will define the third "depth direction" coordinate of the input
  3444.    plane.
  3445.  
  3446. 2. Select View/Drawing_Set, activate the "Abs Grid" gadget and select OK.
  3447.    This shows a grid pattern on the horizontal XZ plane, which is helpful
  3448.    when doing perspective modelling.
  3449.  
  3450. 3. Hit <RAM>z to get the top view. <RAM>x, y, and z hot keys always set
  3451.    both planes to the same position.
  3452.  
  3453. 4. Select Create/Visibles/Cube and create a cube.
  3454.  
  3455. 5. Select View/Type/Perspective. Then select the View/Type/Separate IO
  3456.    menu.
  3457.  
  3458. 6. Now use the cursor keys to adjust the View angle so that it is no
  3459.    longer directly from above. The output plane is rotated but the input
  3460.    plane remains unaltered.
  3461.  
  3462. 7. Select Modify/Linear/Move, grab the cube and move it. The cube moves
  3463.    in the XZ plane and you see it growing when it comes nearer to the
  3464.    camera position.
  3465.  
  3466. Figure T2-1: Separate IO  (PICTURE: T2-1)
  3467.  
  3468. The <RAM>x, <RAM>y, and <RAM>z keyboard shortcuts set the input and output
  3469. planes parallel to the absolute space axes, regardless if the Separate IO
  3470. is selected or not. Cursor keys rotate and move the output plane only when
  3471. the Separate IO is used.
  3472.  
  3473. As it was already mentioned, the hot-point "+" which you can set by mouse
  3474. clicks, also plays a role in the View IO system: the input plane always
  3475. goes through that point.
  3476.  
  3477. The input plane can be defined using the local coordinate systems of the
  3478. objects. This enables you to edit the objects in their natural
  3479. orientation. For example, if you want to stretch a cube which has been
  3480. rotated several times and you stretch it in the absolute space
  3481. orientation, the shape of the cube becomes distorted. To get a controlled
  3482. modification, you have to set the input plane parallel to one side of the
  3483. cube.
  3484.  
  3485. The input plane can be set to the object coordinate system by using the
  3486. function View/Input Crd./Obj. Space to View. To get the full advantage of
  3487. this feature, it is recommended that you add a reference coordinate system
  3488. to objects when originally creating them. Using the default orientation of
  3489. the compound or freeform objects may not be accurate enough.
  3490.  
  3491. The following example demonstrates this:
  3492.  
  3493. 1. Create a level called "house" and add a cube (walls) and a triangular
  3494.    polyhedron (roof) under the house level to represent a simplified shape
  3495.    of a house.
  3496.  
  3497. 2. Select Create/Controls/Coordsys, click in the middle of the house and
  3498.    shape a coordinate system primitive: set the three directions of
  3499.    the coordsys primitive parallel to the walls of the cube and press
  3500.    <LMB>. If the coordinate system directions do not match the wall
  3501.    directions perfectly, adjust the coordsys using Modify/Linear/Rotate.
  3502.  
  3503.                              - TUTORIAL 2.4 -
  3504.  
  3505. 3. Now rotate the whole house to an arbitrary angle using Modify/Linear/
  3506.    Rotate. Change the View angle using the cursor keys and rotate it again
  3507.    to make its orientation irregular.
  3508.  
  3509. 4. Go back to the front view using <RAM>x. Now the problem is how to make
  3510.    the house higher or wider? The solution is:
  3511.  
  3512. 5. Select the coordsys primitive and select View/Input Crd./ Obj. Space to
  3513.    View. The view orientation is changed so that editing the house becomes
  3514.    easy using the e.g. Modify/Linear/Stretch function.
  3515.  
  3516. 2.3.3 View Coordinates & Cameras
  3517.  
  3518. Every View window includes a description of its internal camera system.
  3519. This camera information includes the following items:
  3520.  
  3521. - The position of the camera (viewpoint)
  3522.  
  3523. - The point at which the camera is aimed (aimpoint)
  3524.  
  3525. - The camera tilt angle
  3526.  
  3527. - The scale factor (the angle of the lens)
  3528.  
  3529. - Two depth of field factors.
  3530.  
  3531. The View displays the objects according to this information. The depth of
  3532. field information becomes relevant only when the scene is rendered
  3533. using ray tracing.
  3534.  
  3535. The camera information can be stored to the object hierarchy tree by
  3536. creating a camera object. This makes it possible to animate the camera as
  3537. any other object, for example: morph between key positions and attributes
  3538. of the camera.
  3539.  
  3540. The camera object can be created using the menu View/Camera/Create Camera.
  3541. This function creates a new level, and puts two primitives, an aimpoint
  3542. and a viewpoint, under it. They together include all the camera
  3543. information, and the currently displayed situation on the view is stored
  3544. to them.
  3545.  
  3546. The camera object consists of two primitives in order to allow easy
  3547. tracking of animated objects. For example, if the viewpoint primitive is
  3548. placed in a moving car and the aimpoint primitive is in an airplane, the
  3549. camera automatically follows the airplane regardless of the complexity of
  3550. the motions involved.
  3551.  
  3552. The purpose of the aimpoint is to define where the camera aims. It is very
  3553. easy to move the aimpoint to any desired point in the scene and redirect
  3554. the camera that way. Secondly, the distance from the viewpoint to the
  3555. aimpoint defines the focal length of the camera in the depth of field
  3556. rendering effect: objects near the aimpoint (and at a similar distance in
  3557. general) are sharper in the image.
  3558.  
  3559. The viewpoint primitive contains the rest of the camera information. For
  3560. example, by rotating the viewpoint, you can adjust the tilt angle.
  3561.  
  3562. As it was mentioned, every View window contains a full camera description
  3563. internally. You can use the camera object consisting of the aimpoint and
  3564. the viewpoint to store a suitable viewing angle more permanently. The
  3565. following example demonstrates this:
  3566.  
  3567. 1. Hit <RAM>x to get a front view, and use Create/Visibles/Cube to create
  3568.    a cube (just something to look at).
  3569.  
  3570. 2. Use the cursor keys to find a suitable viewing angle.
  3571.  
  3572.                              - TUTORIAL 2.5 -
  3573.  
  3574. 3. Select View/Camera/Create Camera. The carefully selected camera
  3575.    position becomes safely stored.
  3576.  
  3577. 4. Hit <RAM>z to get the top view, and create another cube.
  3578.  
  3579. 5. Select View/Camera/Camera->View. You see the camera view again.
  3580.  
  3581. 6. Adjust the view angle slightly using the cursor keys and "record" the
  3582.    adjustments to the camera object using View/Camera/View->Camera.
  3583.  
  3584. This way, you can take the camera information from a camera object, modify
  3585. it in the View and put it back. You can adjust the camera settings
  3586. visually and interactively through the View.
  3587.  
  3588. It is also possible to create multiple cameras. This feature can be used
  3589. in the following ways:
  3590.  
  3591. - You can store several "important" camera positions to multiple cameras
  3592.   making it possible to quickly check the scene from those critical
  3593.   positions during the model creation.
  3594.  
  3595. - Multiple cameras are needed when animating the camera using the morphing
  3596.   method.
  3597.  
  3598. - When designing your animation, it is possible to "take" from one camera
  3599.   position to the next similar to directing an actual movie set.
  3600.  
  3601. When you want to take a particular camera view and you have multiple
  3602. cameras, you can specify which one to use by selecting it and then
  3603. selecting the menu View/Camera/Camera->View.
  3604.  
  3605. When playing and rendering animations, it is sometimes necessary to
  3606. specify, whether a View should follow motions of an animated camera or
  3607. not. If you are using a camera object, it is useful to play the animation
  3608. from such a point of view that the motions of the camera itself can be
  3609. seen. Therefore, automatically taking the camera view during the animation
  3610. play is not always appropriate.
  3611.  
  3612. You can select the automatic usage of the camera view during animation
  3613. play by selecting the toggle menu View/Camera/Camera View function. This
  3614. selection is private for each View window: one View can follow the camera,
  3615. while another one shows the animation from a fixed position.
  3616.  
  3617. If you are using multiple cameras, you can specify which one to use in
  3618. each window during an animation play from the camera view by adding the
  3619. tag "SWND windowname" to viewpoints and aimpoints. Each window checks
  3620. the hierarchy tree and chooses the first view-point and aimpoint it finds.
  3621. The SWND tag makes the view or aimpoint window specific.
  3622.  
  3623. NOTE:
  3624. The Camera View function is used only during the animation play. It does
  3625. NOT connect a camera object to the View so that the camera object follows
  3626. cursor key adjustments. Instead, use the View->Camera function to store
  3627. the adjustments to the camera.
  3628.  
  3629. 2.3.4 Zooming and Positioning the View
  3630.  
  3631. The visible contents of a View window, in addition to the camera position
  3632. and orientation, also depend on the scale factor of the View. The scale
  3633. defines the "lens angle" of the camera; it is a certain kind of a
  3634. magnification factor. The bigger the scale, the bigger the objects appear
  3635. on the display and the smaller part you can see of the total scene.
  3636. Defining a small scale factor corresponds to using a fish-eye lens: the
  3637. camera angle is wide, and a big part of the scene fits into the View even
  3638. if the camera is close to the objects under observation.
  3639.  
  3640.                              - TUTORIAL 2.6 -
  3641.  
  3642. Note that in perspective View windows, the size in which the objects
  3643. appear on the display, depends on two factors:
  3644.  
  3645. - The scale
  3646.  
  3647. - The distance from the camera to the objects
  3648.  
  3649. There are no other factors involved. So, if you try to find a good camera
  3650. angle in an interior room scene and the objects do not fit well into the
  3651. picture, resizing the room does not help. The problem could be best solved
  3652. by moving the camera and/or changing the scale. This is the same as real
  3653. world situations.
  3654.  
  3655. The camera distance does not matter at all on parallel projection Views.
  3656. The scale alone defines the object magnification.
  3657.  
  3658. To change the scale:
  3659.  
  3660. 1. If you intend to enlarge an object on a View, choose the operation
  3661.    View/Display/Pos&Zoom In.
  3662.  
  3663. 2. Then move the mouse pointer to that part of the View you want to
  3664.    enlarge. When you press the left mouse button, you can draw a rectangle
  3665.    on the screen. The region inside the rectangle will be enlarged so that
  3666.    it takes up the whole window.
  3667.  
  3668. You can reduce the scale by choosing the operation View/Display/Pos&Zoom
  3669. Out. Then you can define a rectangle that will, after reduction, contain
  3670. that part of the space that is visible on the View when the operation was
  3671. started.
  3672.  
  3673. A quick way to change the scale is to use the <RAM>- and <RAM>+ keys which
  3674. correspond to the Zoom In and Zoom Out functions.
  3675.  
  3676. Using the Position operation you can change the position of the windows in
  3677. space. You can, for example, observe in detail an object that is on the
  3678. edge of the space.
  3679.  
  3680. To move a View window in space:
  3681.  
  3682. 1. Choose menu View/Display/Position.
  3683.  
  3684. 2. Grab an object and move it to any place you want. Instead of moving the
  3685.    object, REAL 3D moves the window so that the object will show in a
  3686.    different part of the window.
  3687.  
  3688. The auto focus function offers a fast way to position and scale the View
  3689. around the selected objects:
  3690.  
  3691. 1. Select the desired objects.
  3692.  
  3693. 2. Select View/Display/Auto Focus.
  3694.  
  3695. The active View window will be centered around the objects, and the scale
  3696. is modified so that the objects fill the window.
  3697.  
  3698. If you want to reset the scale and the position of the View to the default
  3699. values:
  3700.  
  3701. 1. Choose View/Display/Reset or hit <RAM>e keys.
  3702.  
  3703.                              - TUTORIAL 2.7 -
  3704.  
  3705. 2.4 WIREFRAME DRAWING SPEED
  3706.  
  3707. The asynchronous design of REAL 3D normally means that the user does not
  3708. have to pay much attention to wireframe refreshing of the View windows.
  3709. In some extreme cases with very complicated wireframes, it may be necessary
  3710. to control screen updates in order to obtain more speed.
  3711.  
  3712. 2.4.1 Bounding Boxes
  3713.  
  3714. When modifying objects, it is possible to use the Bounding Box
  3715. representation instead of accurate wireframe drawing. You can select this
  3716. method using the Modify/Draw mode menu.
  3717.  
  3718. When the bounding box representation is selected and you select an object
  3719. modification function, as soon as you click on a View, REAL 3D constructs
  3720. a box shape around each selected object and uses the boxes to show the
  3721. effect of the modification.
  3722.  
  3723. The bounding box representation may be suitable e.g. when resizing a
  3724. complex object; the new size can be seen immediately from the box shape,
  3725. without the possible redrawing delays.
  3726.  
  3727. 2.4.2 Refresh Modes
  3728.  
  3729. You can speed up screen updates by choosing menu Settings/Refresh/Current.
  3730. Then the program updates only the active View window.
  3731.  
  3732. If the previous technique is not fast enough, select Settings/Refresh/
  3733. None. Then the program does not update at all.
  3734.  
  3735. Settings/Refresh/All turns the normal automatic updating on.
  3736.  
  3737. 2.4.3 The Visible Range of the Objects
  3738.  
  3739. Often it is unnecessary to have objects drawn on the screen other than the
  3740. object you are creating. For example, if you are creating a rocking chair
  3741. inside a house, it is of no use to draw the house all the time. The house
  3742. should be drawn only when the rocking chair is ready and can be positioned
  3743. in the living room. In REAL 3D, you are able to allow only a portion of
  3744. the object to be drawn which can be useful when creating complex scenes.
  3745.  
  3746. The visible range of an object can be defined in relation to the current
  3747. level. You can define the number of the parent levels of the current level
  3748. to be drawn using the Settings/Oper. Level/Depth function, and by
  3749. selecting Settings/Oper. Level/Active menu.
  3750.  
  3751. If the Active toggle is unset, the whole project is drawn to the screen
  3752. regardless of which level is the current one.
  3753.  
  3754. If the Active toggle is set and the Depth is 0, only objects under the
  3755. current level are drawn.
  3756.  
  3757. 2.4.4 Other Methods
  3758.  
  3759. - Using lower screen depth, for example 2 instead of 4, may speed up
  3760. screen refreshing considerably.
  3761.  
  3762. - Drawing speed of B-Spline objects can be adjusted using the View/
  3763.   Drawing_Set function. The lower the Surface and Curve subdivision, the
  3764.   faster the updating. Control Polygon representation without Knots and
  3765.   Curves is the fastest method.
  3766.  
  3767.                              - TUTORIAL 2.8 -
  3768.  
  3769. - You can make individual objects invisible using the WF-invisible gadget
  3770.   of the Modify/Properties/Attributes function. If it is important to see
  3771.   some wireframe, add a visible cube with a suitable size to the same
  3772.   level and make it RT-invisible. Then it shows the size and the location
  3773.   of the invisible object quickly, but the "cube" is not visible when test
  3774.   rendering.
  3775.  
  3776. 2.5 THE MEASURING WINDOW
  3777.  
  3778. The measuring window can be used to substitute for the mouse or for
  3779. numerical input when accurate control is required.
  3780.  
  3781. The window displays the mouse coordinates of the active View. The
  3782. measuring windows input fields can modify the coordinates. The
  3783. coordinates can be expressed using the following alternatives:
  3784.  
  3785. - Hot-point or absolute space origin related coordinates.
  3786.  
  3787. - Input-plane oriented or absolute space oriented coordinate directions.
  3788.  
  3789. - Polar or normal 3D coordinates.
  3790.  
  3791. Furthermore, the measuring unit can be specified to be meters,
  3792. millimetres, inches etc.
  3793.  
  3794. The following examples demonstrate how to use the measuring window.
  3795. Open a View window and a measuring window:
  3796.  
  3797. To create a square rectangle:
  3798.  
  3799. 1. Activate the View and hit <RAM >e to reset it.
  3800.  
  3801. 2. Select Create/Visibles/Rectangle.
  3802.  
  3803. 3. Activate the X gadget of the measuring window, enter 0 and hit
  3804.    <RETURN>. Then activate the Y gadget, enter 0 and hit <RETURN>.
  3805.    Leave Z as it is.
  3806.  
  3807. 4. Press the ACCEPT gadget.
  3808.  
  3809. 5. Activate the X gadget again, enter 0.8 and hit <RETURN>. Then activate
  3810.    the Y gadget, enter 0.8 and hit <RETURN>. You should see the rectangle
  3811.    on the display.
  3812.  
  3813. 6. If the size of the rectangle is not suitable, re-enter the X and Y
  3814.    values.
  3815.  
  3816. 7. Press ACCEPT to create the rectangle.
  3817.  
  3818. To move the rectangle 0.2 units to the X direction and 0.3 units to the
  3819. Z direction:
  3820.  
  3821. 1. Select the rectangle and select Modify/Linear/Move.
  3822.  
  3823. 2. Activate the "Hot-P" gadget of the measuring window.
  3824.  
  3825. 3. Press the ACCEPT gadget to "grab" the rectangle.
  3826.  
  3827. 4. Enter X = 0.2, Y = 0, Z = 0.3. Every time you enter a new value,
  3828.    you see the rectangle moving.
  3829.  
  3830.                              - TUTORIAL 2.9 -
  3831.  
  3832. 5. Press ACCEPT
  3833.  
  3834. To create a cylinder sector of 45 degrees:
  3835.  
  3836. 1. Activate the "Origin" and "Polar" gadgets.
  3837.  
  3838. 2. Select Create/Sectors/Cylinder.
  3839.  
  3840. 3. Enter X = 0, Y = 0 , Z = 0, and press ACCEPT.
  3841.  
  3842. 4. Enter X = 0,Y = 0,Z = 2 and press ACCEPT.
  3843.  
  3844. 5. Enter X = 45, Y = 0 , Z = 2. By modifying Z and N values, you can
  3845.    adjust the size and the depth of the sector. X defines the angle.
  3846.  
  3847. 6. When the sector is suitable, press ACCEPT.
  3848.  
  3849. To rotate the cylinder 1 5 degrees around its center:
  3850.  
  3851. 1. Activate the "Origin", "I-Plane" and "Polar" gadgets.
  3852.  
  3853. 2. Select the sector and select Modify/Linear/Rotate.
  3854.  
  3855. 3. <LMB> click in the center of the cylinder.
  3856.  
  3857. 4. Press <CTRL> down and click directly to the right of the sector center.
  3858.    Keeping the <CTRL> down when pressing <LMB> defines a new coordinate
  3859.    but leaves the hot-point unaltered. This is necessary to measure the
  3860.    rotation around the sector center
  3861.  
  3862. 5. Now use the measuring window: enter the angle to the X gadget. When the
  3863.    angle is suitable, hit ACCEPT. As you see, it is possible to swap from
  3864.    the normal mouse input to the measuring system input. If you want to
  3865.    start using the mouse again while executing a function, activate the
  3866.    View by clicking its title bar.
  3867.  
  3868. 2.6 GRIDS
  3869.  
  3870. The grid function of REAL 3D rounds the mouse coordinates to a desired
  3871. grid. The grid system is based on a set of grids, of which one is the so
  3872. called current grid. The current grid can be "activated" so that the
  3873. coordinates snap to it, and it can be made visible. The number of grids
  3874. is not limited, and the current grid collection can be edited and expanded
  3875. freely.
  3876.  
  3877. If you do not know the grid function yet, experiment with it in the
  3878. following way:
  3879.  
  3880. 1. Activate a View window and hit <RAM>e to reset it.
  3881.  
  3882. 2. Select Create/Visibles/Rectangle and shape a rectangle. Observe that
  3883.    you can freely control the size of the rectangle.
  3884.  
  3885. 3. Select the View/Grid/Snap to Grid toggle menu.
  3886.  
  3887. 4. Create another rectangle. This time the shape of the rectangle can be
  3888.    defined only in grid units.
  3889.  
  3890. 5. Create a third rectangle beside the second one. Observe how easy it is
  3891.    to match one edge of the new rectangle with an edge of the second
  3892.    rectangle.
  3893.  
  3894.                              - TUTORIAL 2.10 -
  3895.  
  3896. 6. Select View/Grid/Visible. When you create new rectangles, it is easy
  3897.    to align them with the previous ones because you can follow the visible
  3898.    grid lines.
  3899.  
  3900. In the previous example, the internal default grid of 0.1 units was used.
  3901. You can specify another grid by using the View/Grid/Select function:
  3902. it allows you to pick a grid from the current grid collection. This grid
  3903. collection can be loaded, saved, or replaced using the Project/Project/
  3904. Load Sections, Save Sections or Replace sections functions and by
  3905. selecting the "Grids" gadget in the sections requester.
  3906.  
  3907. You can also save a suitable grid collection as a part of your working
  3908. environment by using Project/Project/Save Sections (e.g. to
  3909. s:real-startup) and by including "Grids" to the selected sections.
  3910.  
  3911. You can create a new grid using the menu View/Grid/Create. The most
  3912. important definitions are the "Name" and the three "Grid" gadgets, which
  3913. Specify the lengths of the grid units. It is good idea to name the grids
  3914. according to the grid unit sizes, so that selecting them using the name is
  3915. easy.
  3916.  
  3917. You can also specify the grid origin. The visible grid plane position,
  3918. size, color and line pattern can be controlled. The default pattern 65535
  3919. corresponds to a solid line, 21845 gives a dense dotted line and 4369
  3920. gives a less dense dotted line.
  3921.  
  3922. Grids can be modified using the View/Grid/Modify function and individual
  3923. grids can be deleted using the View/Grid/Delete function.
  3924.  
  3925. 2.7 THE UNDO FUNCTION
  3926.  
  3927. The undo function can be used to restore the situation before the latest
  3928. action affecting the object structure. The undo depth can be specified
  3929. using Settings/Undo depth function; if the depth is greater than one, you
  3930. can restore the state of the scene several steps earlier. After restoring
  3931. the earliest state included in the undo buffer, the undo function jumps
  3932. back to the current situation. This means that you can safely step through
  3933. the undo buffer, because it works as a closed loop.
  3934.  
  3935. To use the undo feature, select Extras/Undo or hit the <RAM>U keys.
  3936. Note that Project/New function clears the undo buffer, thus deleting its
  3937. contents permanently. Undo stores only the object data structure.
  3938. You cannot undo e.g. window closing or material modifications.
  3939.  
  3940. You can use undo to restore an animation to its original state after the
  3941. playback. This is handy when creating particle animations, which cannot
  3942. be "rewound".
  3943.  
  3944. 2.7.1 Undo and Memory Management
  3945.  
  3946. There are some tricks which can be helpful when meeting memory problems.
  3947.  
  3948. If the program does not execute a selected function, but gives a message
  3949. "NOT ENOUGH MEMORY", it is recommended that the scene is saved before
  3950. further actions.
  3951.  
  3952. Deactivating the undo feature using the Settings/Undo/Active menu usually
  3953. helps with low memory problems. You may also define a lower undo depth,
  3954. for example 1 instead of the default 3 steps.
  3955.  
  3956. Note:
  3957. If your scene causes memory problems while editing, it is almost certain
  3958. that you cannot render shaded images of it.
  3959.  
  3960.                              - TUTORIAL 2.11 -
  3961.  
  3962. 2.8 VECTOR STACK
  3963.  
  3964. The Vector stack of REAL 3D is a general purpose storage for 3D vectors.
  3965. Many built-in functions use it in their operation, and you can use the
  3966. vectors stack for storing and manipulating coordinate data for all kinds
  3967. of modelling purposes.
  3968.  
  3969. REAL 3D includes a menu based "3D-calculator", which can do vector
  3970. subtraction, addition and other useful operations. It uses the vector
  3971. stack to store the parameters and results of such operations.
  3972.  
  3973. You can store 3D coordinates to the vector stack by entering the
  3974. coordinates from the keyboard or by using mouse operations. The
  3975. coordinates can be modified and combined using the vector operations and
  3976. later when creating or modifying objects, you can pick vectors from the
  3977. stack, instead of using <LMB> clicks.
  3978.  
  3979. The following example demonstrate using the vector stack.
  3980.  
  3981. An example: creating a polygon using information from existing objects
  3982.  
  3983. 1. Create two objects, a sphere and a rectangle. The purpose is to create
  3984.    a triangle from the middle of the sphere to the middle of one side of
  3985.    the rectangle and to a given 3D point (1,1,0.5).
  3986.  
  3987. 2. Press <SHIFT> down and drag a box (keep <LMB> down and move the mouse,
  3988.    so that REAL 3D displays a dotted-line rectangle) around the sphere.
  3989.    A set of crosses should appear on the View. These crosses show the
  3990.    current contents of the vector stack.
  3991.  
  3992. 3. Select Extras/Vectors/Average All. This operation calculates an average
  3993.    of all the vectors in the stack. The vectors are removed from the stack
  3994.    and the result (the average) is pushed to the stack. So, only one cross
  3995.    is left in the middle of the sphere.
  3996.  
  3997. 4. <SHIFT><drag> another box around the two points of an edge of the
  3998.    rectangle. Two more vectors are pushed to the stack.
  3999.  
  4000. 5. Select Extras/Vectors/Average. This operation replaces the two topmost
  4001.    vectors in the stack with their average. So, the result is that the
  4002.    middle point of the rectangle edge is put into the stack.
  4003.  
  4004. 6. Now the stack contains two vectors, and we enter the third one from the
  4005.    keyboard: select Extras/Vectors/Enter and type the coordinates 1, 1 and
  4006.    0.5 to the three fields of the numeric requester.
  4007.  
  4008. 7. Select Create/Visible/Polygon. Instead of using <LMB>, select three
  4009.    times Extras/Vectors/Pull (or hit<RAM>.), and then use <RMB> to finish
  4010.    the polygon.
  4011.  
  4012. If the View window was not active when you selected the Polygon function,
  4013. activate it with a click on the title bar, so that the creation is
  4014. started. If it is a borderless View, you can activate it with a <LMB>
  4015. click and then undo the first point with the <DEL> key. In some cases,
  4016. you just have to activate the View first and then select the creation
  4017. function.
  4018.  
  4019.                              - TUTORIAL 2.12 -
  4020.  
  4021. Chapter 3 MATERIALS
  4022. -------------------
  4023.  
  4024. 3.1 USING MATERIALS
  4025.  
  4026. 3.1.1 General Information
  4027.  
  4028. When creating photorealistic images and animations, it is necessary not
  4029. only to create complex shapes, but to simulate different real world
  4030. material properties. REAL 3D includes excellent tools for this purpose.
  4031.  
  4032. REAL 3D represents objects as solids whose physical properties can be
  4033. defined using materials. Materials contain information about molecular
  4034. surface structure, colouring, and optical properties.
  4035.  
  4036. Basic material properties can be adjusted easily using slider gadgets.
  4037. More accurate control over properties can be achieved using so called
  4038. texture maps, which are bitmap images whose colors can be used to define
  4039. object surface colouring and other material properties. Mathematical
  4040. textures, which are mathematical formulas that define desired properties,
  4041. are also used. Since mathematical textures can be expressed as RPL
  4042. programs or user-defined formulas, there are again unlimited possibilities
  4043. to enhance and expand the built-in material features of REAL 3D.
  4044.  
  4045. Many advanced material features of REAL 3D utilize the solid modelling
  4046. principle of the program. Correct light refraction evaluation and non-
  4047. homogenous materials, such as gas clouds with a desired spatial density
  4048. distribution, are good examples. When working with REAL 3D, you store the
  4049. materials you may need in a material library, which is a memory resident
  4050. collection of individual materials. A material is a collection of
  4051. information which defines the characteristics of a real world material
  4052. such as wood, glass, steel, marble, water, etc.
  4053.  
  4054. You can manipulate the material library in many different ways: you can
  4055. delete materials from it, empty it, load an old library from disk and join
  4056. it to the current one, save the library , and last but not least, create
  4057. brand new materials using the material editor , and add them to the
  4058. library.
  4059.  
  4060. When you want to use a material for an object in your scene, you create a
  4061. new object in the hierarchy. This new "material" object acts as a
  4062. reference to one of the materials in the library, and at the same time,
  4063. defines certain geometric properties which are used in the precise
  4064. placement of the texture (material object) on the object (target solid
  4065. object) when texture mapping. This new material reference object is called
  4066. the mapping object. All the objects in the same hierarchy level with the
  4067. mapping object are affected by the material to which the mapping refers.
  4068.  
  4069. So, the principle is to have a library of materials and to use the
  4070. hierarchy tree to combine shapes with materials. For example, to model a
  4071. wooden candlestick, you first add the material wood to the material
  4072. library, then create a level "Wooden-Stick", and under that level you
  4073. place the stick shape object and the wood mapping object. You can
  4074. interpret this so that the wooden stick consists of stick and wood, shape
  4075. and the material. Natural, isn't it!
  4076.  
  4077.      WoodenStick
  4078.         Stick
  4079.         Wood
  4080.  
  4081. Note:
  4082. That the hierarchy tree contains references to the materials, not the
  4083. materials themselves. This approach has several advantages.
  4084. First of all, often you have to adjust the material properties afterwards;
  4085. it is sufficient to modify only one material to get the desired change in
  4086. all objects which are made of that material. Secondly, a material is very
  4087. large collection of information and therefore this method saves a lot of
  4088. memory.
  4089.  
  4090.                              - TUTORIAL 3.1 -
  4091.  
  4092. A real example of using materials will clarify this rather abstract
  4093. description. We will experiment with materials in the following tutorial
  4094. project.
  4095.  
  4096. 3.1.2 Tutorial Project
  4097.  
  4098. Creating a shiny sphere standing on a marble cube is a suitable exercise
  4099. to demonstrate various aspects of using materials. First create a simple
  4100. object containing two primitives:
  4101.  
  4102. 1. Start the program with the standard environment.
  4103.  
  4104. 2. Create two shapes using Create/Visibles/Cube and Sphere functions.
  4105.    The hierarchy tree should look like the following:
  4106.  
  4107.      Root
  4108.         
  4109. cube                                                               
  4110.         ellipsoid                                                  
  4111.                                                                    
  4112. 3. Open the material editor using the menu Project/Windows/Material
  4113.  
  4114. This opens a new window with many gadgets. Don't worry, most gadgets
  4115. contain good default values, and you will only have to define a couple
  4116. of things in order to create a material.
  4117.  
  4118. 4. Type the name of the first material "shiny" to the name field.
  4119.  
  4120. The properties of "shiny" can be adjusted using a couple of sliders:
  4121.  
  4122. 5. Move the Specularity slider to the middle, so that the percentage
  4123.    displayed at the right end of the slider becomes approximately 50%.
  4124.  
  4125. 6. Adjust Brilliance to 80%.
  4126.  
  4127. Specularity creates high-lights, which make the object look shiny. The
  4128. higher the specularity, the sharper the high-lights. The second
  4129. specularity adjustment, specular brightness, defines the brightness of
  4130. the high-lights. The default value 25% is suitable, so you do not have
  4131. to change it. Brilliance is the "mirror-like" property: the higher the
  4132. value, the clearer the reflections you see on the surface of the
  4133. material. Brilliancy level 0 produces a matt surface with no reflections,
  4134. like unpolished paper.
  4135.  
  4136. Now that the properties are defined:
  4137.  
  4138. 7. Hit APPLY button.
  4139.  
  4140. This creates the material "shiny", that is, adds the material to the
  4141. material library.
  4142.  
  4143. The second material can be created in a similar way.
  4144.  
  4145. 8. Hit RESET button to remove old material properties.
  4146.  
  4147. 9. Define the name of the second material, "marble".
  4148.  
  4149. 10. Select material editor menu Texture/Define.
  4150.  
  4151. 11. Select the file "r3D2:textures/marble1", using file selector.
  4152.  
  4153. 12. Activate both Tile gadgets, X and Y
  4154.  
  4155. 13. Press APPLY.
  4156.  
  4157.  
  4158.                            End Of Part 1
  4159.  
  4160.  
  4161.  
  4162.